Wordstar-Dateien konvertieren

23/03/2010 - 16:03 von Volker Pohlers | Report spam
Hallo,

ich möchte einen kleinen Konverter für alte CP/M-Wordstar-Dateien
schreiben. Ein zeilenweises Einlesen mit <IN> ist recht praktisch,
scheitert aber an den gesetzten 7. Zeichenbits, so dass ein Zeilenende
auch mal so aussehen kann: \x0d\x8a. Das versteht Perl nicht als
Zeilenende. Wie kann ich hier sinnvoll vorgehen? (Mal abgesehen von
einer externen Datei-Vorverarbeitung, die jeweils das 7. Bit auf 0 setzt)?

mfg
Volker
 

Lesen sie die antworten

#1 Rafael Koeppen
23/03/2010 - 18:50 | Warnen spam
Volker Pohlers schrieb:
Hallo,

ich möchte einen kleinen Konverter für alte CP/M-Wordstar-Dateien
schreiben. Ein zeilenweises Einlesen mit <IN> ist recht praktisch,
scheitert aber an den gesetzten 7. Zeichenbits, so dass ein Zeilenende
auch mal so aussehen kann: \x0d\x8a. Das versteht Perl nicht als
Zeilenende. Wie kann ich hier sinnvoll vorgehen? (Mal abgesehen von
einer externen Datei-Vorverarbeitung, die jeweils das 7. Bit auf 0 setzt)?

mfg
Volker


Hi,

vielleicht das ganze File (wenn nicht zu groß) in einen Scalar einlesen

..
undef $/;
my $file_content = <IN>;
..

und dann entweder \x0d\x8a durch normale Linefeeds ersetzen mit s///g;
oder in einem entspr. split berücksichtigen, womit der String dann in
die einzelnen Zeilen zerhackt wird ?

Gruß Rafael

Ähnliche fragen