- Documentation
- Reference manual
- SWI-Prolog extensions
- The string type and its double quoted syntax
- Predicates that operate on strings
- atom_string/2
- number_string/2
- term_string/2
- term_string/3
- string_chars/2
- string_codes/2
- string_bytes/3
- text_to_string/2
- string_length/2
- string_code/3
- get_string_code/3
- string_concat/3
- split_string/4
- sub_string/5
- atomics_to_string/2
- atomics_to_string/3
- string_upper/2
- string_lower/2
- read_string/3
- read_string/5
- open_string/2
- Predicates that operate on strings
- The string type and its double quoted syntax
- SWI-Prolog extensions
- Packages
- Reference manual
Availability:built-in
- Skip all characters that match PadChars
- Read up to a character that matches SepChars or end of file
- Discard trailing characters that match PadChars from the collected input
- Unify String with a string created from the input and Sep with the code of the separator character read. If input was terminated by the end of the input, Sep is unified with -1.
The predicate read_string/5 called repeatedly on an input until Sep is -1 (end of file) is equivalent to reading the entire file into a string and calling split_string/4, provided that SepChars and PadChars are not partially overlapping.173Behaviour that is fully compatible would require unlimited look-ahead. Below are some examples:
Read a line:
read_string(Input, "\n", "\r", Sep, String)
Read a line, stripping leading and trailing white space:
read_string(Input, "\n", "\r\t ", Sep, String)
Read up to‘,
’or‘)
’,
unifying Sep with 0',
i.e. Unicode 44, or 0')
,
i.e. Unicode 41:
read_string(Input, ",)", "\t ", Sep, String)