Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi String in Exe suchen ?!? BSP funzt nicht (https://www.delphipraxis.net/15866-string-exe-suchen-bsp-funzt-nicht.html)

stoxx 5. Feb 2004 15:11


String in Exe suchen ?!? BSP funzt nicht
 
Hallo,

ich kann doch eine Exe auch in einen normalen TextEditor laden.
Oder in einem Hex Editor erscheint der String ja auch
Wenn #13#10 in der exe ist, dann sollte das doch erstmal kein problem sein.
Warum funktioniert dieses Beispiel nicht ? Der String wird in der eigenen Exe nicht gefunden.
Wie funktioniert es dann ?
Danke !

Code:
procedure TForm1.Button1Click(Sender: TObject);
var
 a, pfad : string;
 f : Textfile;
 st : ansistring;
begin
 a := 'Gc684mf';
 caption := a;

 pfad := paramstr(0);

 assignfile(f,pfad);
 reset(f);

 while not eof(f) do
 begin
   readln(f,st);
   if StrStrCount(st, a) <> 0 then showmessage('gefunden');
   if AnsiStrPos(Pchar(st),Pchar(a)) <> nil then showmessage('gefunden');
   if pos(a,st) <> 0 then showmessage('gefunden');
 end;

closefile(f);


end;

choose 5. Feb 2004 15:21

Re: String in Exe suchen ?!? BSP funzt nicht
 
Hallo stoxx,

Zitat:

Zitat von stoxx
Warum funktioniert dieses Beispiel nicht?

Weil die Implementierung von Eof (_EofText) bei Textdateien nicht auf die Länge der Datei sondern auf das Vorkommen des Steuerzeichens EndOfFile ($1A) testet. Sollte dieses Byte innerhalb des Stroms vorkommen, wird die Bearbeitung sofort abgebrochen, obgleich noch weitere Bytes in der Datei vorhanden sein könnten.

stoxx 5. Feb 2004 15:27

Re: String in Exe suchen ?!? BSP funzt nicht
 
Zitat:

Zitat von choose
Hallo stoxx,

Zitat:

Zitat von stoxx
Warum funktioniert dieses Beispiel nicht?

Weil die Implementierung von Eof (_EofText) bei Textdateien nicht auf die Länge der Datei sondern auf das Vorkommen des Steuerzeichens EndOfFile ($1A) testet. Sollte dieses Byte innerhalb des Stroms vorkommen, wird die Bearbeitung sofort abgebrochen, obgleich noch weitere Bytes in der Datei vorhanden sein könnten.


jep Danke !.. hab ich auch gerade gemerkt :-)
Wollte gerade posten, dass es funktioniert.

mit if StrStrCount(st, a) <> 0 then showmessage('gefunden');
aus JCLStrings funktioniert es ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz