home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / l / l216 / 1.ddi / READEXT.PRO < prev    next >
Encoding:
Prolog Source  |  1987-03-23  |  1.7 KB  |  62 lines

  1. /***************************************************************
  2.      Turbo Prolog Toolbox
  3.      (C) Copyright 1987 Borland International.
  4. ***************************************************************/
  5.  
  6. PREDICATES
  7.   read_char(Char)
  8.   read_int(Integer)
  9.   read_real(Real)
  10.   read_long(Real)
  11.   read_str(String)
  12.   read_str2(String,String)
  13.   read_strArr(Integer,String)
  14.   read_str2Arr(Integer,String,String)
  15.   read_strCtrlZ(String)
  16.   read_str2CtrlZ(String,String)
  17.   ignore(Integer)
  18.  
  19. CLAUSES
  20.   read_char(X):-readchar(X).
  21.  
  22.   read_int(V) :-
  23.     readchar(Lch), readchar(Hch), char_int(Lch,Low), char_int(Hch,High),
  24.     bitleft(High,8,Vh), V = Low + Vh.
  25.  
  26.   read_real(Real) :-
  27.     read_int(V1), read_int(V2), read_int(V3), read_int(V4),
  28.     real_ints(Real,V1,V2,V3,V4).
  29.  
  30.   read_long(Long) :-
  31.     read_int(VLow), read_int(_), Long=Vlow.
  32.  
  33.   read_str(Str) :- read_str2("",Str).
  34.   read_str2(Scur,Str) :-
  35.     readchar(CH), CH<>'\000', !,
  36.     str_char(S1,CH), concat(Scur,S1,Scur2),
  37.     read_str2(Scur2,Str).
  38.   read_str2(S,S).
  39.  
  40.   read_strArr(N,S) :- read_str2Arr(N,"",S).
  41.  
  42.   read_str2Arr(0,Str,Str)  :- !.
  43.   read_str2Arr(N,Scur,Str) :-
  44.     readchar(CH),
  45.     str_char(S1,CH), concat(Scur,S1,Scur2),
  46.     N2=N-1, read_str2Arr(N2,Scur2,Str).
  47.  
  48.   read_strCtrlZ(Str) :- read_str2CtrlZ("",Str).
  49.   read_str2CtrlZ(Scur,Str) :-
  50.     readchar(CH), CH<>'\026', !, /* CtrlZ => CP/M way signaling eof */
  51.     str_char(S1,CH), concat(Scur,S1,Scur2),
  52.     read_str2CtrlZ(Scur2,Str).
  53.   read_str2CtrlZ(S,S).
  54.  
  55.  
  56. /*************************************************************
  57.     Ignore Characters
  58. *************************************************************/
  59.  
  60.   ignore(0) :- !.
  61.   ignore(N) :- readchar(_), N2=N-1, ignore(N2).
  62.