Zitat von
Uncle Cracker:
Danke funktioniert, hat das irgendwelche Nachteile bzw. muss ich den Stack dann am Ende wieder "runterschrauben"?
die sauberere Lösung wäre, das ganze in den Heap zu verfrachten:
Delphi-Quellcode:
Var FS: TFileStream;
{dynamisches Array verwenden}
Buffer: Array of Byte;
I: Integer;
B: Byte;
Begin
Try
{Datei öffnen}
FS := TFileStream.Create('C:\Test.exe', fmOpenReadWrite);
{Speicher für Buffer allozieren}
SetLength(Buffer,FS.Size);
{Daten einlesen (8ung: Buffer>>[0]<<}
FS.Read(Buffer[0],Length(Buffer));
{Bytefolge suchen}
For I := 0 to Length(Buffer) - 3 do
If (Buffer[I] = $78) and
(Buffer[I + 1] = $78) and
(Buffer[I + 2] = $78) Then Begin
Showmessage('Gefunden')
End;
FS.Free;
Except
On EFOpenError do ShowMessage('Datei konnte nicht geöffnet werden');
Else ShowMessage('Unbekannter Fehler');
End;
End;