// Hiermit kann man einen Filestream mit einem Memorystream vergleichen.
// Siehe auch:
Binäre Dateien vergleichen

// Getestet mit D4 unter WinME

      
function Vergleiche_FS_MS(FS:TFilestream;MS:TMemorystream):boolean;
var
tm:TMemorystream;
begin
if
FS.size = MS.size then begin
tm:=TMemorystream.create;
FS.position:=0;
tm.copyfrom(FS,FS.size);
result:=CompareMem(tm.memory,MS.memory,MS.size);
tm.free;
end else result:=false;
end;
 

// das folgende (etwas sinnlose) Beispiel dient
// ausschließlich zum Testen der Funktion
procedure TForm1.Button4Click(Sender: TObject);
var
m:TMemorystream;
f:TFilestream;
b:byte;
procedure anzeige;
var s:string;
begin
if
Vergleiche_FS_MS(f,m) then s:='gleich' else s:='ungleich';
showmessage(s);
end;
begin
f:=TFilestream.create('c:\test.txt',fmopenread);
m:=TMemorystream.create;
m.copyfrom(f,f.size);
anzeige;
f.position:=0;
f.readbuffer(b,1);
if b=255 then b:=254 else inc(b);
m.position:=0;
m.writebuffer(b,1);
anzeige;
f.free;
m.free;
end;


Zugriffe seit 6.9.2001 auf Delphi-Ecke