Registriert seit: 6. Apr 2005
10.109 Beiträge
|
Re: ReadLn und WriteLn
5. Dez 2006, 09:46
Hallo Paul,
der Schein trügt - ReadLn() verlangt keine Leerzeichen per se. Wenn du die Koordinaten (10,11,12) mit Write(x,y,z) wegschreibst, dann könntest du das gleiche Ergebnis auch mit Write(1,0,1,1,1,2) oder Write(101112) erzeugen. Jedes Argument der Prozedur wird in eine textuelle Darstellung überführt und weggeschrieben. Wer außer dir könnte sagen, wo ein Trenner gebraucht wird?
Die Prozedure ReadLn() wäre auch mit jedem anderen Zeichen zufrieden, welches das Ende einer "Zahl" signalisieren kann. Leerzeichen sind aber besonders praktisch, da die Prozedur ReadLn() so implementiert ist, dass sie eine beliebige Anzahl an Leerzeichen überspringt um die nächste Zahl einzulesen. Auf diesen Komfort wollte und konnte man in der Anfangszeit von Pascal nicht verzichten - immerhin musste man gegen FORTRAN anstinken.
Auf der Seite von WriteLn() ist die automatische Erzeugung von Ausgabezeichen keine so gute Idee, was unmittelbar einleuchten sollte. Es wäre ja sonst nie möglich gewesen eine Datei exakt nach dem Willen des Entwicklers zu erzeugen - immerhin waren früher Write() und WriteLn() die einzigen verfügbaren Ausgabe-Prozeduren.
Die Standardprozeduren Read() / ReadLn() und Write() / WriteLn() fallen in Pascal wegen der variablen Parameterzahl sowieso etwas aus der Rolle. Bald werden sie ganz verschwunden sein.
Freundliche Grüße
|