Sign in Join
Wiki copytemporary

Revision 1 of 1, by Trev on 1-17-2020. The page as it is now.

ReadLn/de

Zurück zu den reservierten Wörtern.

Read / ReadLn

Vorwort

Der Befehl Write/WriteLn wird angewandt.

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

pascal
Read(f, Datensatz);    // Liest einen Datensatz aus einer eine Datei.
// oder
ReadLn(f, Datensatz);  // nur Bei Text-Dateien möglich.

Genaueres hier:

Konsole / Text-Dateien

Es ist möglich direkt Strings, Char, Zahlen, etc. einzulesen.

Mehrere Argumente

Es sind mehrere Argumente in ReadLn möglich.

pascal
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:

Mögliche Fehler

Wird hier etwas anderes eingegeben als eine Ganzzahl, kommt es unweigerlich zu einem Laufzeitfehler.

pascal
var
  i: Integer;
begin
  Read(i);

Dies kann folgendermassen abgefangen werden:

pascal
{$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:

pascal
  ReadLn(s);

von der Konsole einlesen.

Wird die Ausgabe des Projekts folgendermassen umgeleitet:

bash
# 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

Verwendung mit property

pascal
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.


From the Free Pascal wiki, page "ReadLn/de", as it stood on 2020-01-17 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.