 [det]csv(?Rows)
[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(defaultfalse), 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. Ifup, upcase 
them and ifpreserve(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(defaulttrue), 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.