Did you know ... Search Documentation:
Pack logtalk -- logtalk-3.77.0/docs/_sources/csv_protocol_0.rst.txt

.. index:: csv_protocol .. _csv_protocol/0:

.. rst-class:: right

protocol

csv_protocol

CSV file and stream reading and writing protocol.

| Availability: | logtalk_load(csv(loader))

| Author: Jacinto Dávila and Paulo Moura | Version: 2:0:0 | Date: 2023-03-13

| Compilation flags: | static

| Dependencies: | (none)

| Remarks:

  • Type-checking: Some of the predicate file and stream argument type-checking exceptions depend on the Prolog backend compliance with standards.

| Inherited public predicates: | (none)

.. contents:: :local: :backlinks: top

Public predicates

.. index:: read_file/3 .. _csv_protocol/0::read_file/3:

read_file/3 ^^^^^^^^^^^^^^^

Reads a CSV file saving the data as clauses for the specified object predicate. Fails if the file cannot be parsed.

| Compilation flags: | static

| Template: | read_file(File,Object,Predicate) | Mode and number of proofs: | read_file(+atom,+object_identifier,+predicate_indicator) - zero_or_one

| Exceptions: | File is a variable: | instantiation_error | File is neither a variable nor an atom: | type_error(atom,File) | File is an atom but not an existing file: | existence_error(file,File) | File is an existing file but cannot be opened for reading: | permission_error(open,source_sink,File) | Object is a variable: | instantiation_error | Object is neither a variable nor an object identifier: | type_error(object_identifier,Object) | Object is a valid object identifier but not an existing object: | existence_error(object,Object) | Predicate is a variable: | instantiation_error | Predicate is neither a variable nor a predicate indicator: | type_error(predicate_indicator,Predicate) | Predicate is a valid predicate indicator but not an existing public predicate: | existence_error(predicate,Predicate)


.. index:: read_stream/3 .. _csv_protocol/0::read_stream/3:

read_stream/3 ^^^^^^^^^^^^^^^^^

Reads a CSV stream saving the data as clauses for the specified object predicate. Fails if the stream cannot be parsed.

| Compilation flags: | static

| Template: | read_stream(Stream,Object,Predicate) | Mode and number of proofs: | read_stream(+stream_or_alias,+object_identifier,+predicate_indicator) - zero_or_one

| Exceptions: | Stream is a variable: | instantiation_error | Stream is neither a variable nor a stream-term or alias: | domain_error(stream_or_alias,Stream) | Stream is not an open stream: | existence_error(stream,Stream) | Stream is an output stream: | permission_error(input,stream,Stream) | Stream is a binary stream: | permission_error(input,binary_stream,Stream) | Object is a variable: | instantiation_error | Object is neither a variable nor an object identifier: | type_error(object_identifier,Object) | Object is a valid object identifier but not an existing object: | existence_error(object,Object) | Predicate is a variable: | instantiation_error | Predicate is neither a variable nor a predicate indicator: | type_error(predicate_indicator,Predicate) | Predicate is a valid predicate indicator but not an existing public predicate: | existence_error(predicate,Predicate)


.. index:: read_file/2 .. _csv_protocol/0::read_file/2:

read_file/2 ^^^^^^^^^^^^^^^

Reads a CSV file returning the data as a list of rows, each row a list of fields. Fails if the file cannot be parsed.

| Compilation flags: | static

| Template: | read_file(File,Rows) | Mode and number of proofs: | read_file(+atom,-list(list)) - zero_or_one

| Exceptions: | File is a variable: | instantiation_error | File is neither a variable nor an atom: | type_error(atom,File) | File is an atom but not an existing file: | existence_error(file,File) | File is an existing file but cannot be opened for reading: | permission_error(open,source_sink,File)


.. index:: read_stream/2 .. _csv_protocol/0::read_stream/2:

read_stream/2 ^^^^^^^^^^^^^^^^^

Reads a CSV stream returning the data as a list of rows, each row a list of fields. Fails if the stream cannot be parsed.

| Compilation flags: | static

| Template: | read_stream(Stream,Rows) | Mode and number of proofs: | read_stream(+stream_or_alias,-list(list)) - zero_or_one

| Exceptions: | Stream is a variable: | instantiation_error | Stream is neither a variable nor a stream-term or alias: | domain_error(stream_or_alias,Stream) | Stream is not an open stream: | existence_error(stream,Stream) | Stream is an output stream: | permission_error(input,stream,Stream) | Stream is a binary stream: | permission_error(input,binary_stream,Stream)


.. index:: read_file_by_line/3 .. _csv_protocol/0::read_file_by_line/3:

read_file_by_line/3 ^^^^^^^^^^^^^^^^^^^^^^^

Reads a CSV file saving the data as clauses for the specified object predicate. The file is read line by line. Fails if the file cannot be parsed.

| Compilation flags: | static

| Template: | read_file_by_line(File,Object,Predicate) | Mode and number of proofs: | read_file_by_line(+atom,+object_identifier,+predicate_indicator) - zero_or_one

| Exceptions: | File is a variable: | instantiation_error | File is neither a variable nor an atom: | type_error(atom,File) | File is an atom but not an existing file: | existence_error(file,File) | File is an existing file but cannot be opened for reading: | permission_error(open,source_sink,File) | Object is a variable: | instantiation_error | Object is neither a variable nor an object identifier: | type_error(object_identifier,Object) | Object is a valid object identifier but not an existing object: | existence_error(object,Object) | Predicate is a variable: | instantiation_error | Predicate is neither a variable nor a predicate indicator: | type_error(predicate_indicator,Predicate) | Predicate is a valid predicate indicator but not an existing public predicate: | existence_error(predicate,Predicate)


.. index:: read_stream_by_line/3 .. _csv_protocol/0::read_stream_by_line/3:

read_stream_by_line/3 ^^^^^^^^^^^^^^^^^^^^^^^^^

Reads a CSV stream saving the data as clauses for the specified object predicate. The stream is read line by line. Fails if the stream cannot be parsed.

| Compilation flags: | static

| Template: | read_stream_by_line(Stream,Object,Predicate) | Mode and number of proofs: | read_stream_by_line(+stream_or_alias,+object_identifier,+predicate_indicator) - zero_or_one

| Exceptions: | Stream is a variable: | instantiation_error | Stream is neither a variable nor a stream-term or alias: | domain_error(stream_or_alias,Stream) | Stream is not an open stream: | existence_error(stream,Stream) | Stream is an output stream: | permission_error(input,stream,Stream) | Stream is a binary stream: | permission_error(input,binary_stream,Stream) | Object is a variable: | instantiation_error | Object is neither a variable nor an object identifier: | type_error(object_identifier,Object) | Object is a valid object identifier but not an existing object: | existence_error(object,Object) | Predicate is a variable: | instantiation_error | Predicate is neither a variable nor a predicate indicator: | type_error(predicate_indicator,Predicate) | Predicate is a valid predicate indicator but not an existing public predicate: | existence_error(predicate,Predicate)


.. index:: read_file_by_line/2 .. _csv_protocol/0::read_file_by_line/2:

read_file_by_line/2 ^^^^^^^^^^^^^^^^^^^^^^^

Reads a CSV file returning the data as a list of rows, each row a list of fields. The file is read line by line. Fails if the file cannot be parsed.

| Compilation flags: | static

| Template: | read_file_by_line(File,Rows) | Mode and number of proofs: | read_file_by_line(+atom,-list(list)) - zero_or_one

| Exceptions: | File is a variable: | instantiation_error | File is neither a variable nor an atom: | type_error(atom,File) | File is an atom but not an existing file: | existence_error(file,File) | File is an existing file but cannot be opened for reading: | permission_error(open,source_sink,File)


.. index:: read_stream_by_line/2 .. _csv_protocol/0::read_stream_by_line/2:

read_stream_by_line/2 ^^^^^^^^^^^^^^^^^^^^^^^^^

Reads a CSV stream returning the data as a list of rows, each row a list of fields. The stream is read line by line. Fails if the stream cannot be parsed.

| Compilation flags: | static

| Template: | read_stream_by_line(Stream,Rows) | Mode and number of proofs: | read_stream_by_line(+stream_or_alias,-list(list)) - zero_or_one

| Exceptions: | Stream is a variable: | instantiation_error | Stream is neither a variable nor a stream-term or alias: | domain_error(stream_or_alias,Stream) | Stream is not an open stream: | existence_error(stream,Stream) | Stream is an output stream: | permission_error(input,stream,Stream) | Stream is a binary stream: | permission_error(input,binary_stream,Stream)


.. index:: write_file/3 .. _csv_protocol/0::write_file/3:

write_file/3 ^^^^^^^^^^^^^^^^

Writes a CSV file with the data represented by the clauses of the specified object predicate.

| Compilation flags: | static

| Template: | write_file(File,Object,Predicate) | Mode and number of proofs: | write_file(+atom,+object_identifier,+predicate_indicator) - one

| Exceptions: | File is a variable: | instantiation_error | File is neither a variable nor an atom: | type_error(atom,File) | File is an atom but cannot be opened for writing: | permission_error(open,source_sink,File) | Object is a variable: | instantiation_error | Object is neither a variable nor an object identifier: | type_error(object_identifier,Object) | Object is a valid object identifier but not an existing object: | existence_error(object,Object) | Predicate is a variable: | instantiation_error | Predicate is neither a variable nor a predicate indicator: | type_error(predicate_indicator,Predicate) | Predicate is a valid predicate indicator but not an existing public predicate: | existence_error(predicate,Predicate)


.. index:: write_stream/3 .. _csv_protocol/0::write_stream/3:

write_stream/3 ^^^^^^^^^^^^^^^^^^

Writes a CSV stream with the data represented by the clauses of the specified object predicate.

| Compilation flags: | static

| Template: | write_stream(Stream,Object,Predicate) | Mode and number of proofs: | write_stream(+stream_or_alias,+object_identifier,+predicate_indicator) - one

| Exceptions: | Stream is a variable: | instantiation_error | Stream is neither a variable nor a stream-term or alias: | domain_error(stream_or_alias,Stream) | Stream is not an open stream: | existence_error(stream,Stream) | Stream is an input stream: | permission_error(output,stream,Stream) | Stream is a binary stream: | permission_error(output,binary_stream,Stream) | Object is a variable: | instantiation_error | Object is neither a variable nor an object identifier: | type_error(object_identifier,Object) | Object is a valid object identifier but not an existing object: | existence_error(object,Object) | Predicate is a variable: | instantiation_error | Predicate is neither a variable nor a predicate indicator: | type_error(predicate_indicator,Predicate) | Predicate is a valid predicate indicator but not an existing public predicate: | existence_error(predicate,Predicate)


.. index:: guess_separator/2 .. _csv_protocol/0::guess_separator/2:

guess_separator/2 ^^^^^^^^^^^^^^^^^^^^^

Guesses the separator used in a given file, asking the user to confirm.

| Compilation flags: | static

| Template: | guess_separator(File,Separator) | Mode and number of proofs: | guess_separator(+atom,-atom) - one

| Exceptions: | File is a variable: | instantiation_error | File is neither a variable nor an atom: | type_error(atom,File) | File is an atom but not an existing file: | existence_error(file,File) | File is an atom but cannot be opened for writing: | permission_error(open,source_sink,File)


.. index:: guess_arity/2 .. _csv_protocol/0::guess_arity/2:

guess_arity/2 ^^^^^^^^^^^^^^^^^

Guesses the arity of records in a given file, asking the user to confirm.

| Compilation flags: | static

| Template: | guess_arity(File,Arity) | Mode and number of proofs: | guess_arity(+atom,-number) - one

| Exceptions: | File is a variable: | instantiation_error | File is neither a variable nor an atom: | type_error(atom,File) | File is an atom but not an existing file: | existence_error(file,File) | File is an atom but cannot be opened for writing: | permission_error(open,source_sink,File)


Protected predicates

(none)

Private predicates

(none)

Operators

(none)