Hallo Zusammen,
ich möchte einmal aus der Delphi-Hilfe zitieren:
Zitat:
Alle anderen Methoden eines
Handle-Streams zum Lesen von Daten (ReadBuffer, ReadComponent) rufen die Methode Read für den eigentlichen Lesevorgang auf.
gleiches gilt sinngemäß für Write und WriteBuffer
Write/Read-Buffer sind Proceduren denen der Buffer und die Anzahl Bytes übergeben wird. Sollte beim Lesen bzw. Schreiben ein Fehler auftauchen wird eine
Exception ausgelöst, die ggf. zu verarbeiten ist.
Read/Write sind Funktionen, denen der der Buffer und die Anzahl Bytes übergeben wird. Zurück gegeben wird die Anzahl der tatsächlich gelesenen/geschriebenen Bytes. Daher Kann man ohne eine
Exception-Behandlung auf "Fehler" beim Lesen/Schreiben reagieren.
Für mich ist es daher Geschmackssache welche Routine man einsetzt. Da ich des öfteren das ältere BlockRead/Blockwrite zu ersetzen habe, bevorzuge ich Read und Write.
Delphi-Quellcode:
......
fs:=tfilestream.create(meinedatei);
lies:=x;
repeat
gelesen:=fs.read(buffer,lies);
if gelesen >0 then
{tuwas
for i:=0 to gelesen-1 do ........ }
until gelesen<>lies;
fs.free;
....
fs:=tfilestream.create(meinedatei);
counter:=0;
lies:=x;
repeat
try
fs.readbuffer(buffer,lies);
{tuwas
for i:=0 to lies-1 do ........ }
except
showmessage('lesefehler');
exit;
end;
inc(counter,1);
until counter>y;
fs.free;
....
Da intern fs.read/fs.write von fs.readbuffer/fs.writebuffer aufgerufen wird sehe ich keinen Grund es nicht gleich zu verwenden.
Gruß
K-H