von DPunch » Mo, 21.06.2010 23:11
Aloha
Das wird mit der Leseweise von "Line Input" vs "Input" zu tun haben.
Wie Du schon festgestellt hast, funktioniert alles, wenn Du *nur* den Linefeed hast, aber nicht, wenn Du Linefeed + Carriage Return in der Datei vorliegen hast.
Das Problem bei Karos Code war schlichtweg, dass sowohl der Linefeed, als auch der Carriage Return als neue Zeile angesehen wurden, weshalb Du leere Ergebnisse gekriegt hast, wenn der Cursor gerade hinter dem Carriage Return gelandet war -> neue Zeile für den Input Stream -> die neue Zeile enthält nur den Linefeed -> leere Zeile. Und genau diese leere Zeile hast Du geliefert gekriegt.
Offensichtlich erkennt ein einfaches "Input" diese Zusammensetzung, das Stichwort "Line" reagiert aber auf beide Steuerzeichen.
(Kannst Du ja mal testen, indem Du z.B. jede einzelne eingelesene Zeile mit Karos Code ausgeben lässt)
Zurückzuführen ist das wohl darauf, dass die Anfänge unter Linux und deshalb ohne das CR liegen, aber ich weiss es ehrlich gesagt auch nicht genau.
Aloha
Das wird mit der Leseweise von "Line Input" vs "Input" zu tun haben.
Wie Du schon festgestellt hast, funktioniert alles, wenn Du *nur* den Linefeed hast, aber nicht, wenn Du Linefeed + Carriage Return in der Datei vorliegen hast.
Das Problem bei Karos Code war schlichtweg, dass sowohl der Linefeed, als auch der Carriage Return als neue Zeile angesehen wurden, weshalb Du leere Ergebnisse gekriegt hast, wenn der Cursor gerade hinter dem Carriage Return gelandet war -> neue Zeile für den Input Stream -> die neue Zeile enthält nur den Linefeed -> leere Zeile. Und genau diese leere Zeile hast Du geliefert gekriegt.
Offensichtlich erkennt ein einfaches "Input" diese Zusammensetzung, das Stichwort "Line" reagiert aber auf beide Steuerzeichen.
(Kannst Du ja mal testen, indem Du z.B. jede einzelne eingelesene Zeile mit Karos Code ausgeben lässt)
Zurückzuführen ist das wohl darauf, dass die Anfänge unter Linux und deshalb ohne das CR liegen, aber ich weiss es ehrlich gesagt auch nicht genau.