Durchgang durch die Datei

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

FortuneCookie.om
PROCEDURE OpenCookies(VAR file: CookieFile) : BOOLEAN;

   PROCEDURE ReadCookie(VAR pos: Streams.Count) : BOOLEAN;
      VAR
         line: ARRAY 4 OF CHAR;
   BEGIN
      LOOP
         Streams.GetPos(file.s, pos);
         Read.LineS(file.s, line);
         (* end of input file? *)
         IF file.s.count = 0 THEN RETURN FALSE END;
         (* skip commented or empty lines *)
         IF (line[0] # "%") & (line[0] # 0X) THEN
            RETURN TRUE
         END;
      END;
   END ReadCookie;

BEGIN (* OpenCookies *)
   IF ~UnixFiles.Open(file.s, "cookies", UnixFiles.read,
         Streams.onebuf, NIL) THEN
      RETURN FALSE
   END;
   file.nofcookies := 0;
   WHILE (file.nofcookies < maxcookies) &
         ReadCookie(file.pos[file.nofcookies]) DO
      INC(file.nofcookies);
   END;
   RETURN file.nofcookies > 0
END OpenCookies;

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 2004, 2005 Andreas Borchert, in HTML konvertiert am 18.02.2005