Einzelnen Beitrag anzeigen

SneakyBagels
(Gast)

n/a Beiträge
 
#1

RawByteString in Stream finden?

  Alt 11. Mai 2017, 18:15
Ich habe diese Prozedur im WWW gefunden und sie funktioniert wirklich exzellent.

Delphi-Quellcode:
function FindInMemStream(Stream: TBytesStream; What: string): Integer;
var
 bufBuffer, bufBuffer2: array [0 .. 254] of Char;
 i: Integer;
begin
 Result := 0;
 i := 0;
 FillChar(bufBuffer, 255, #0);
 FillChar(bufBuffer2, 255, #0);
 StrPCopy(@bufBuffer2, What);
 Stream.Position := 0;
 while Stream.Position <> Stream.Size do
  begin
   Stream.Read(bufBuffer[0], Length(What));
   if CompareMem(@bufBuffer, @bufBuffer2, Length(What)) then
    begin
     Result := Stream.Position - Length(What);
     Exit;
    end;
   i := i + 1;
   Stream.Seek(i, 0)
  end;
end;
Mein Problem besteht darin einen rawbytestring finden zu lassen. Wenn ich der Prozedur einen hardcoded String übergebe wird er gefunden nicht aber ein rawbytestring.

Geändert von SneakyBagels (11. Mai 2017 um 18:19 Uhr)
  Mit Zitat antworten Zitat