hmmm
, komm in HexCodeList z.B. die #0 als Zeichen vor?
bzw, wie sieht denn der Inhalt von HexCodeList aus?
[add]achsi, du wandelst die eingelesenen Daten in einen HexString um ... da mußt du aber aufpassen, daß die Suchposition auch der Startposition einen Zeichens entspricht
Daten 12AB
Suchwort 2A
wäre ja sint enthalten, aber nicht nicht in der Datei drin
[/add]
deine PChar-Functionen brechen dort ab.
Den vohin oben nacheditieren Vorschlag:
(zwar jetzt nur für einen String, aber das sollte sich ändern lassen ... und beim Löschen des Puffers den die Länge des längsten String verwenden)
Delphi-Quellcode:
Const BufferSize = 65536;
Var F: TFileStream;
P, L: Int64;
Buffer: AnsiString;
i: Integer;
Begin
F := TFileStream.Create(FileName, fmOpenRead);
L := F.Size;
Buffer := '';
While P + Length(Buffer) < L do Begin
i := Length(Buffer);
SetLength(Buffer, i + BufferSize);
SetLength(Buffer, i + F.Read(Buffer[i + 1], BufferSize));
If Pos(SerarchData, Buffer) > 0 Then
Found;
Delete(Buffer, 1, Length(Buffer) - Length(SearchData) + 1);
End;
F.Free;
End;