Einzelnen Beitrag anzeigen

Basilikum

Registriert seit: 9. Aug 2003
389 Beiträge
 
Delphi 7 Professional
 
#7

Re: String in 3 MB großen Dateien suchen

  Alt 11. Jun 2004, 14:08
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;
  Mit Zitat antworten Zitat