|
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.
|
Copyright © 2004, 2005 Andreas Borchert, in HTML konvertiert am 18.02.2005 |