Sign in Join
Wiki copytemporary

ReadLn/de: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: ReadLn/de

OldNewLine
1+Zurück zu den [[Reserved words/de|reservierten Wörtern]].
2+
3+# Read / ReadLn
4+
5+## Vorwort
6+
7+Der Befehl **Write/WriteLn** wird angewandt.
8+
9+- Konsolen-Tastatur-Eingabe. ( Nur ganze Zeile + \[Enter\] )
10+- Lesen von Datei/Gerät.
11+- Bei **property** bei Classen (nur **Read**).
12+
13+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.
14+
15+## Schreiben in Datei
16+
17+``` pascal
18+Read(f, Datensatz); // Liest einen Datensatz aus einer eine Datei.
19+// oder
20+ReadLn(f, Datensatz); // nur Bei Text-Dateien möglich.
21+```
22+
23+Genaueres hier:
24+
25+- [[File Handling In Pascal|Datei Behandlung in Pascal]] (englisch)
26+
27+## Konsole / Text-Dateien
28+
29+Es ist möglich direkt Strings, Char, Zahlen, etc. einzulesen.
30+
31+### Mehrere Argumente
32+
33+Es sind mehrere Argumente in **ReadLn** möglich.
34+
35+``` pascal
36+var
37+ a, b, c: integer;
38+begin
39+ ReadLn(a, b, c);
40+ WriteLn(a);
41+ WriteLn(b);
42+ WriteLn(c);
43+end.
44+```
45+
46+Bei der Eingabe hat man mehrere Möglichkeiten:
47+
48+- Zahl \[Enter\] Zahl \[Enter\] Zahl \[Enter\]
49+- Zahl \[Space\] Zahl \[Space\] Zahl \[Enter\]
50+- Zahl \[Tab\] Zahl \[Tab\] Zahl \[Enter\]
51+
52+### Mögliche Fehler
53+
54+Wird hier etwas anderes eingegeben als eine Ganzzahl, kommt es unweigerlich zu einem Laufzeitfehler.
55+
56+``` pascal
57+var
58+ i: Integer;
59+begin
60+ Read(i);
61+```
62+
63+Dies kann folgendermassen abgefangen werden:
64+
65+``` pascal
66+{$I-} // Das kein Laufzeitfehler geworfen wird.
67+var
68+ ior, i: integer;
69+begin
70+ repeat
71+ Read(i);
72+ ior := IOResult; // Prüfen, ob Eingabe IO.
73+ if ior <> 0 then begin
74+ WriteLn('Falsche Eingabe !');
75+ end;
76+ until ior = 0;
77+ WriteLn('Es wurde ', i, ' eingegeben');
78+end.
79+```
80+
81+Wen man den Fehler nicht abfängt, ist **i = 0**.
82+
83+## Eingabe umlenken
84+
85+Normalerweise liest dies von der Konsole ein:
86+
87+``` pascal
88+ ReadLn(s);
89+```
90+
91+von der Konsole einlesen.
92+
93+Wird die Ausgabe des Projekts folgendermassen umgeleitet:
94+
95+``` bash
96+# Linux
97+./project1 < text.txt
98+# Windows/DOS
99+project1.exe < text.txt
100+```
101+
102+Liest **Read**/**ReadLn** von der umgelenkten Datei/Gerät.
103+
104+## Einzelne Zeichen einlesen
105+
106+Siehe dazu folgende Funktionen in der Unit [[Crt/de|Crt]]
107+
108+- **ReadKey** - Liest ein einzelnes Zeichen.
109+- **KeyPressed** - Liefert **true** wen sich mindestens 1 Zeichen im Tastaturpuffer befindet.
110+
111+## Verwendung mit property
112+
113+``` pascal
114+type
115+ MyClass=class(TObject)
116+ private
117+ FColor: Integer;
118+ published
119+ property Color : Integer read FColor write FColor; // Hier verwendet.
120+ end;
121+```
122+
123+Genaueres hier:
124+
125+- [[Property/de|Property]]
126+
127+Autor: Mathias
128+
129+## Siehe auch
130+
131+[[Write/de|Write / WriteLn]] - Konsolen - Ausgabe / Schreiben in Datei.
132+
133+---
134+*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](/wiki-contact).*
135+Category: Pascal/de
136+Category: Reserved words/de

Back to history