Kopierprozedur

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

Concatenate.om
PROCEDURE Copy(in, out: Streams.Stream) : BOOLEAN;
   (* copy all bytes from in to out;
      return FALSE in case of errors
   *)
   VAR
      ch: CHAR;
BEGIN
   WHILE Streams.ReadByte(in, ch) DO
      IF ~Streams.WriteByte(out, ch) THEN
         RETURN FALSE
      END;
   END;
   RETURN in.eof
END Copy;

*Mit Streams.ReadByte und Streams.WriteByte kann byte-weise kopiert werden.
 
*Wichtig ist, daß bei Fehlern sofort mit einem RETURN FALSE abgebrochen wird.
 
*Wenn das Einlesen an einem Fehler scheitert, endet die WHILE-Schleife und in.error ist TRUE, während in.eof noch FALSE ist.
 
*Klappt die Ausgabe nicht, wird die Prozedur mitten in der WHILE-Schleife mit einem RETURN FALSE verlassen.
 

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