Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Binäre Daten durchsuchen (https://www.delphipraxis.net/42036-binaere-daten-durchsuchen.html)

Mystic 12. Mär 2005 13:02


Binäre Daten durchsuchen
 
Ich habe in einem TMemoryStream binäre Daten, in dem ab und zu eine Ziffernfolge auftaucht die mit TRIGSTR_ beginnt und mit dem Null-Zeichen #0 aufhört. Die Länge der Ziffernfolgen und die Abstände zwischen diesen Ziffernfolgen sind unterschiedlich.

Jetzt möchte ich nach diesen Stellen suchen und sie durch andere ersetzen. Dies müsste ich jeweils mit Ziffernfolgen gleicher und Zeichenfolgen unterschiedlicher Länge tun.

Beispiel (*=Binäre Daten):

Vorher:
Code:
**TRIGSTR_1039****TRIGSTR_032******TRIGSTR_398***
Nachher 1 (Ziffernfolge gleicher Länge):
Code:
**TRIGSTR_0039****TRIGSTR_002******TRIGSTR_271***
Nachher 2 (Zeichenfolge unterschiedlicher Länge):
Code:
**BlahBlahBlahBlah****BlahBlah******BlahBlahBlah***
Wie stelle ich das jetzt am besten an?

Fourcorner 12. Mär 2005 13:59

Re: Binäre Daten durchsuchen
 
Ich weiss nicht ob es dir hilf:
Wenn du die Datei als einen String ausgelesen hast könntest du mit AnsiPos die Anfangsposition der beiden Strings ("TRIGSTR_" und "#0") finden. Mit ansileftstr und ansirightstr kann man dann den String so "abschneiden", dass der neue String zum einfügen hinzugefügt werden kann.

Mystic 13. Mär 2005 02:32

Re: Binäre Daten durchsuchen
 
Es hat sich jetzt erledigt. Ich kopiere den MemoryStream in einen TStringStream, um dort mit Pos nach TRIGSTR_ zu suchen. Danach lese ich byteweise die Nummer aus, bis ich auf ein anderes Zeichen treffe. Dann wird das Ganze ersetzt und alles was danach kommt wieder in (den geleerten) StringStream geschrieben und die Prozedur beginnt von neuem bis kein Vorkommen mehr gefunden wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:49 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