[det]csv(?Rows)//
[det]csv(?Rows, 
+Options)//Prolog DCG to‘read/write’CSV data. Options:
- separator(+Code)
 - The comma-separator. Must be a character code. Default is (of course) 
the comma. Character codes can be specified using the 0’notation. 
E.g., using 
separator(0';) parses a semicolon separated 
file. 
- ignore_quotes(+Boolean)
 - If 
true (default false), threat double quotes as a normal 
character. 
- strip(+Boolean)
 - If 
true (default false), strip leading and 
trailing blank space. RFC4180 says that blank space is part of the data. 
- skip_header(+CommentLead)
 - Skip leading lines that start with CommentLead. There is no 
standard for comments in CSV files, but some CSV files have a header 
where each line starts with 
#. After skipping comment lines 
this option causes csv//2 to 
skip empty lines. Note that an empty line may not contain white space 
characters (space or tab) as these may provide valid data. 
- convert(+Boolean)
 - If 
true (default), use name/2 
on the field data. This translates the field into a number if possible. 
- case(+Action)
 - If 
down, downcase atomic values. If up, upcase 
them and if preserve (default), do not change the case. 
- functor(+Atom)
 - Functor to use for creating row terms. Default is 
row. 
- arity(?Arity)
 - Number of fields in each row. This predicate raises a 
domain_error(row_arity(Expected), Found) 
if a row is found with different arity. 
- match_arity(+Boolean)
 - If 
false (default true), do not reject CSV 
files where lines provide a varying number of fields (columns). This can 
be a work-around to use some incorrect CSV files.