dedlfix: Dos-Formatierten Text einlesen

Beitrag lesen

echo $begrüßung;

"Wenn du von ignorieren sprichst, dann könnte es auch sein, dass du keine Textdatei sondern eine strukturierte Datei vorliegen hast und zufällige Bytewerte an "ungenutzten Stellen" stehen. In dem Fall solltest du nicht mit Textdatei-Methoden hantieren sondern die Daten der Struktur entnehmen. Umkodieren wirst du sie dann möglicherweise immer noch müssen."

=> kannst Du mir das nochmal genauer erklären?
Wie kann ich die Daten der Struktur entnehmen??

Beispielweise könnten die Daten so aussehen:

iiiizssssssssssiiiizssssssssssiiiizssssssssss...

i steht für ein Byte eines Integerwertes, z ist ein Längenbyte für den Stringwert (s).

iiii4testmüllxyiiii3fooblafasliiii8Pit Stopxy...

Der Integerwert ist erstmal uninteressant, deswegen lass ich die Platzhalter-i dort stehen. Interessant sind die Stringwerte. Die 4 steht für den Bytewert 4 und gibt an, dass der String aus 4 Zeichen besteht. Der Rest (müllxy) ist uninteressant, das sind zufällige Werte. Das gleiche Prinzip gilt für die Strings "foo" und "Pit Stop".

Die Struktur eines Records wurde definiert als Integer gefolgt von einem maximal 10-stelligen String (plus vorangehendem Zählbyte). Es können beliebig viele Records hintereinanderstehen. Anhand der bekannten Größenangaben (4+1+10) lässt sich die Position jedes Records und auch die Position jedes Wertes darin berechnen. Solch ein Datenformat war damals nicht unüblich. Es ist kompakt und aufgrund der Positionsberechenbarkeit recht schnell im Zugriff. (Die Möglichkeit, dass ein String kein Zählbyte hat sondern mit einem Null-Byte abgeschlossen ist, erwähnte ich ja schon.)

Die Frage ist nun erst einmal, ob du so ein Record-basierendes Format vorliegen hast. Die Struktur kann alle möglichen Formen annehmen. Genaueres fände man im Quellcode der zugehörigen Anwendung oder nur durch Probieren.

echo "$verabschiedung $name";