Thread Binäre RegEx / Ersetzen
(1 answers)
Opened by AndreasM at 2007-06-05 20:13
Hallo zusammen,
ich habe ein Problem wo ich wahrscheinlich den Wald vor Bäumen nicht sehe. Ich möchte eine binäre Konfigurationsdatei manipulieren. Open mit binmode ist kein Problem, und prinzipiell funktioniert alles auch (auch das Schreiben). Bis auf dieses kleine Detail.... Binär habe ich etwas in der Form 00 00 00 07 00 00 00 c:\Pfad 00 00 in der Datei stehen. "C:\Pfad " möchte ich nun durch das aktuelle Arbeitsverzeichnis ersetzen (was zunächst mal kein Problem ist) Ich kann ohne Schwierigkeiten "C:\Pfad" durch "C:\"Pfud" ersetzen, und die Binärdatei ist vom Programm lesbar. Code: (dl
)
1 #! D:\Perl Mein Problem ist die "07" drei Bytes vor dem Pfadeintrag. Diese 07 gibt nämlich die "Länge" des Pfadenamens an. Würde ich "C:\Pfad" durch "C:\NeuerPfad" ersetzen, müsste statt der "07" dort "0c" stehen. Ich muss also a) den $Arbeitspfad ermitteln -> kein Problem mit cwd b) die Länge von $Arbeitspfad ermitteln, was auch kein Problem ist. Aber wie schreibe ich die Länge als Bytewert weg? Mache ich einen Denkfehler, weil ich hier "Zeichen" und "Bytes" zu mischen versuche? Grüße AndreasM |