Two symbolic Delimiters can be specified:
    end_of_line   a newline or carriage-return/newline sequence
    end_of_file   the end of the file/input
   End of file always acts like a delimiter.
If Length is a variable, it is unified with the length of the string String. If Length is an integer, the number of characters read from the input stream Stream is limited by Length.
Success:
      [eclipse]: read_string(input, "123", Length, String).
          abcdef2ghi
      Length = 6
      String = "abcdef"
      yes.
      [eclipse]: read_string(input, " \t", Length, String).
      one two
      Length = 3
      String = "one"
      yes.
      [eclipse]: read_string(input, end_of_line, Length, String).
      abcdefghi
      Length = 9
      String = "abcdefghi"
      yes.
      [eclipse]: read_string(input, end_of_line, 6, String).
      abcdefghi
      String = "abcdef"
      yes.
      [eclipse]: open(file1, read, s).
      yes.
      [eclipse]: system('cat file1').
      abcd
      yes.
      [eclipse]: read_string(s, "", Length, String).
      Length = 5
      String = "abcd\n"           % Read up to end of file
      yes.
% Code example: read lines from a file and return
% a list of strings, each string containing a line
    get_lines(File, Lines) :-
	open(File, read, S),
	get_lines(S, Lines),
	close(S).
    get_lines(S, Lines) :-
	( read_string(S, end_of_line, _, Line) ->
	    Lines = [Line|Ls],
	    get_lines(S, Ls)
	;
	    Lines = []
	).
Fail:
      [eclipse]: open(string(""),read,s), read_string(s,"",L,String).
      no (more) solution.         % EOF - Error 190 - handler fails
Error:
    read_string(Stream, "", Length, String).       (Error 4).
    read_string(stream, Dels, Length, String).     (Error 4).
    read_string("stream", "", Length, String).     (Error 5).
    read_string(stream, 12, Length, String).       (Error 5).
    read_string(stream, "", "abc", String).        (Error 5).
    read_string(stream, "", Length, 12).           (Error 5).
    read_string(stream, stop, Length, String).     (Error 6).
    read_string(output, "", Length, String).       (Error 192).
    read_string(atom, "", Length, String).         (Error 193).