Prolog – анализ файла csv

Вопрос:

Я пытаюсь разобрать файл csv и извлечь определенные данные coloumn из каждой строки, мне удалось проанализировать файл в списке записей, но я не могу перебирать поля каждой из записей. Является ли их способ разобрать файл csv с помощью пролога, чтобы каждая запись файла csv сама была списком?

Мой код:

:- use_module(library(csv)).

% main function ,  first parse the file then extracts max total market
get_rows_data(File,Rows) :-
csv_read_file(File, Rows, [functor(record), arity(18)]),
maplist(assert, Rows),
get_row(Rows).

get_row([]).
get_row([Head|Tail]) :-
write('*********************************'),write(Head),
get_row(Tail).

Лучший ответ:

Я бы сказал, что вы почти там. Вам нужно только преобразовать запись в список.

:- use_module(library(apply)).
:- use_module(library(csv)).

get_rows_data(File, Lists):-
  csv_read_file(File, Rows, []),
  rows_to_lists(Rows, Lists).

rows_to_lists(Rows, Lists):-
  maplist(row_to_list, Rows, Lists).

row_to_list(Row, List):-
  Row =.. [row|List].

Оцените статью
TechArks.Ru
Добавить комментарий