[vienna.pm] zeilenende unter unix/windows
roland.bauer at fff.at
roland.bauer at fff.at
Thu Aug 16 02:44:33 CDT 2001
* * * vienna-pm-list * * *
Hallo Peter,
> Unter Dos ist das Zeilenende ja mit chr13/chr10 definiert.
Vollstaendig (in Hex):
\x0A ... unix
\x0D\x0A ... dos
\x0A\x0D ... mac
> Wenn ich nun eine Zeile aus einer Datei lese und das Zeilenende-
> Zeichen mittels chomp(@gelesenezeile) entferne, dann kann es mir
> passieren, dass das Zeilenende-Zeichen nicht komplett entfernt wird.
> Frage: gibt es eine Moeglichkeit festzustellen, welche zeilen-Ende-
> Konvention in einer zu lesenden Datei liegt,
Die beiden letzten Zeichen abfragen.
> oder muss ich mir den
> chomp-Befehl neu definieren?
Du musst nicht chomp verwenden. Du kannst es auch selbst machen:
s/\x0D?\x0A$//g; # sollte unter DOS und UNIX funktionieren
> Kann ich den chomp-befehl einfach ueberschreiben?
Wuerde ich nicht empfehlen.
Chomp verwendet $/, das koenntest Du ev. ueberschreiben.
Ich wuerde aber dann die Leseroutine kapseln, damit
$/ nur lokal umdefiniert wird:
# ...
# befehle
# ...
{
# Einlesen:
# Zeilenende herausfinden
# Recordseperator umdefinieren
local $/ = "\x0A"; # $/ darf keine Regex sein; hier local statt my
# open und chomp verwenden
}
# weiter im Programm, es gilt wieder das "normale" $/
Roland
###
You are subscribed to vienna-pm-list as <roland.bauer at fff.at>
http://www.fff.at/fff/vienna.pm/
More information about the Vienna-pm
mailing list