|
|
||||||||||||||||||||||
![]() |
Informationen über Zeilenumbrüche
Zeilenumbruch ist nicht gleich Zeilenumbruch. Verschiedene Betriebssysteme haben auch verschiedene Zeilenumbrüche. Hier die wichtigsten:
CR=Carriage Return (Wagenrücklauf) / LF=Line Feed (Zeilenumbruch) Beim verarbeiten von Dateien mit falschen Zeilenumbrüchen können so diverse Probleme auftreten. Beispiel: eine Konfigurationsdatei beinhaltet diverse Einstellungen von Typ Variablename=Wert, jeweils ein Wert pro Zeile. Die Datei wird nun zeilenweise verarbeitet und in eine Variable geschrieben. Danach wird eine Eingabe in ein HTML-Formular mit dieser Variable verglichen (z.B. Benutzername). Gehen wir jetzt davon aus, dass die Eingabe in das Formular "test" lautet und die Datei im UNIX-Format abgepspeichert und bei \n getrennt wurde, haben wir auch in der Variable ein "test", Eingabe stimmt also. Wird die Datei aber irrtümlich im PC-Format abgespeichert und ebenfalls bei \n getrennt, lautet der Inhalt der Variable nicht wie gewollt "test" sondern "test\r" (DOS-Zeilenumbruch \r\n). Ein Vergleich dieser zwei Werte wird also immer FALSE sein. Der Standard-Editor unter Windows (notepad.exe) ist in keiner Windows-Version in der Lage, UNIX-Zeilenumbrüche korrekt darzustellen, da er immer ein \r\n erwartet. Darum erscheint an Stelle der Zeilenumbrüche lediglich ein komisches Zeichen, so dass der Code unlesbar wird. Dies beweist nur einmal mehr, dass Notepad für die Entwicklung von Scripts nicht unbedingt brauchbar ist. Inzwischen gibt es deshalb hunderte von Texteditoren unter Windows, die solche Zeilenumbrüche beherrschen. Die einschlägigen Download-Archive helfen da sicher weiter. In dem Artikel Text-Editoren für Windows habe ich drei Editoren ausgewählt, die ich etwas genauer vorstellen möchte. Alle Programme beherrschein das Konvertieren zwischen den verschiedenen Zeilenumbruchsformaten. Zudem habe ich noch einige Kommandozeilen-Programme geschrieben, welche Dateien zwischen den verschiedenen Zeilenumbruchsformaten hin- und her konvertieren können. Alle Programme sind sowohl aus ausführbare EXE-Dateien als auch als Perl-Scripts verfügbar. Das Programm "newline" konvertiert alle Formate zu allen Formaten, "topc" konvertiert eine Datei ohne Rückfrage ins PC-Zeilenumbruchsformat, "tounix" ohne Rückfrage ins UNIX-Zeilenumbruchsformat. Details dazu findet man in der Datei content.txt in den jeweiligen ZIP-Archiven. Links zum Download findet man am Schluss dieser Dokumentation.
Dieser Artikel wurde zugesandt von: Jürg Sommer, knowledge@cgicorner.ch Weiterführende Links:
|
|||||||||||||||||||||