ReadLn/de
│ Deutsch (de) │
Zurück zu den reservierten Wörtern.
Read / ReadLn
Vorwort
Der Befehl Write/WriteLn wird angewandt.
- Konsolen-Tastatur-Eingabe. ( Nur ganze Zeile + [Enter] )
- Lesen von Datei/Gerät.
- Bei property bei Classen (nur Read).
Die beiden Befehle Read und ReadLn sind sehr verwandt, der Unterschied, ReadLn liest Zeichen bis zum einem Zeilenumbruch ein. Wobei man ReadLn nur bei Text-Dateien und Konsolenausgabe verwenden kann.
Schreiben in Datei
Read(f, Datensatz); // Liest einen Datensatz aus einer eine Datei.
// oder
ReadLn(f, Datensatz); // nur Bei Text-Dateien möglich.
Genaueres hier:
- Datei Behandlung in Pascal (englisch)
Konsole / Text-Dateien
Es ist möglich direkt Strings, Char, Zahlen, etc. einzulesen.
Mehrere Argumente
Es sind mehrere Argumente in ReadLn möglich.
var
a, b, c: integer;
begin
ReadLn(a, b, c);
WriteLn(a);
WriteLn(b);
WriteLn(c);
end.
Bei der Eingabe hat man mehrere Möglichkeiten:
- Zahl [Enter] Zahl [Enter] Zahl [Enter]
- Zahl [Space] Zahl [Space] Zahl [Enter]
- Zahl [Tab] Zahl [Tab] Zahl [Enter]
Mögliche Fehler
Wird hier etwas anderes eingegeben als eine Ganzzahl, kommt es unweigerlich zu einem Laufzeitfehler.
var
i: Integer;
begin
Read(i);
Dies kann folgendermassen abgefangen werden:
{$I-} // Das kein Laufzeitfehler geworfen wird.
var
ior, i: integer;
begin
repeat
Read(i);
ior := IOResult; // Prüfen, ob Eingabe IO.
if ior <> 0 then begin
WriteLn('Falsche Eingabe !');
end;
until ior = 0;
WriteLn('Es wurde ', i, ' eingegeben');
end.
Wen man den Fehler nicht abfängt, ist i = 0.
Eingabe umlenken
Normalerweise liest dies von der Konsole ein:
ReadLn(s);
von der Konsole einlesen.
Wird die Ausgabe des Projekts folgendermassen umgeleitet:
# Linux
./project1 < text.txt
# Windows/DOS
project1.exe < text.txt
Liest Read/ReadLn von der umgelenkten Datei/Gerät.
Einzelne Zeichen einlesen
Siehe dazu folgende Funktionen in der Unit Crt
- ReadKey - Liest ein einzelnes Zeichen.
- KeyPressed - Liefert true wen sich mindestens 1 Zeichen im Tastaturpuffer befindet.
Verwendung mit property
type
MyClass=class(TObject)
private
FColor: Integer;
published
property Color : Integer read FColor write FColor; // Hier verwendet.
end;
Genaueres hier:
Autor: Mathias
Siehe auch
Write / WriteLn - Konsolen - Ausgabe / Schreiben in Datei.