[bp-users]Re: read from a text file

Neng-Fa Zhou nzhou@acm.org
Mon, 1 Dec 2003 16:21:05 -0500


You should use get_code(X) to test whether you have encountered end-of-line
(X is bound to 10 if end-of-line). The program behaves the same regardless
of whether you use the debugger or not. The second run gives 'yes' because
'at_end_of_strea'm succeeds, not because it is in debug mode. In B-Prolog,
there is a built-in called readLine(X) (may not be documented) that reads in
a line as codes.

Neng-Fa Zhou

bbabinu@hknetmail.com wrote:

eol('\n').

% Reads a single line from a given file.
% read_myline(X):-write(X),nl,fail.

read_myline([]):-
    at_end_of_stream.
read_myline([]):-
    peek_char(Char1),
    eol(Char1),
    get_char( _ ).
read_myline([Code |Others]):-
    get_char(NextChar),
    char_code(NextChar, Code),
    read_myline(Others).

test1(FileName):-
    open(FileName, read, FpStream),
    set_input(FpStream),
    read_myline(DimStr),
    write(DimStr),
    close(FpStream).

this program fails to read a line from a text file....