Read - procedura
Wczytuje z podanego pliku wejściowego jedną lub więcej danych.
Deklaracja:
Read(z1, ..., zn)
lub
Read(var F, var z1, ..., zn)
z1, ..., zn - zmienne typu odpowiedniego dla wczytywanych danych.
F - zmienna plikowa określonego typu, w tym typu tekstowego.
Jeżeli w wywołaniu pominiemy określenie pliku wejściowego, dane będą pobierane ze standardowego pliku wejściowego (np. konsola). Jeżeli plik F jest plikiem tekstowym zmienne z1, ..., zn mogą być typu char, integer (i inne typy całkowite), real (i inne typy rzeczywiste) lub string. Dla zmiennej typu Char Read wczytuje jeden znak i przypisuje go podanej zmiennej. Jeśli przed wczytaniem znaku funkcja Eof(F) zwraca wartość true, zmiennej przypisywany jest znak o kodzie 26 (Ctrl-Z), znak końca zbioru. Gdy Eoln(F) jest równe true zmiennej przypisywany jest znak o kodzie 13 (ENTER). Funkcja Read po wczytaniu znaku przesuwa wskaźnik pliku do następnego znaku. Dla zmiennej typu całkowitego procedura Read wczytuje ciąg znaków i interpretuje go jako liczbę całkowitą ze (przekształca go do odpowiedniego formatu wewnętrznego liczb całkowitych), a następnie otrzymaną liczbę przypisuje odpowiedniej zmiennej. Wszystkie znaki spacji, tabulacji i końca linii poprzedzające wczytywaną liczbę są pomijane. Jeżeli wczytany ciąg znaków nie jest poprawnym zapisem liczby całkowitej, powstaje błąd wejścia-wyjścia (I/O). Jeśli funkcja Eof(F) zwraca wartość true przed wywołaniem procedury Read, lub jeśli funkcja Eof(F) zwraca wartość true po ominięciu początkowych spacji, znaków tabulacji i znaków końca linii, odpowiedniej zmiennej jest przypisywana wartość 0. Po wczytaniu liczby całkowitej wskaźnik pliku jest ustawiony na znaku spacji, tabulacji lub końca linii, który był ogranicznikiem wczytywanego ciągu znaków. Dla zmiennej typu rzeczywistego Read wczytuje ciąg znaków, interpretuje go jako liczbę rzeczywistą ewentualnie poprzedzoną znakiem (+ lub -) i przypisuje tę liczbę odpowiedniej zmiennej. Jeśli wczytany ciąg znaków nie reprezentuje prawidłowo żadnej liczby rzeczywistej powstaje błąd wejścia-wyjścia. Wszystkie znaki spacji, tabulacji i końca linii poprzedzające wczytywany ciąg znaków są pomijane. Jeśli funkcja Eof(F) zwraca wartość true przed wywołaniem procedury Read, lub jeśli funkcja Eof(F) zwraca wartość true po ominięciu początkowych spacji, znaków tabulacji i znaków końca linii, odpowiedniej zmiennej jest przypisywana wartość 0. Po wczytaniu liczby rzeczywistej wskaźnik pliku jest ustawiony na znaku spacji, tabulacji lub końca linii, który był ogranicznikiem wczytywanego ciągu znaków.
Dla łańcuchów tekstowych Read wczytuje wszystkie znaki, aż do napotkania znaku końca linii lub gdy funkcja Eof(F) przyjmie wartość true. Wczytany łańcuch znakowy jest przypisywany odpowiedniej zmiennej. Jeśli długość wczytanego łańcucha znaków jest większa od dopuszczalnej dla danego typu zmiennej łańcuchowej, wczytany łańcuch jest obcinany do odpowiedniej długości. Po wczytaniu łańcucha znaków wskaźnik pliku jest ustawiony na znaku końca linii kończącym wczytywany łańcuch.
Dla plików nietekstowych wszystkie wczytywane zmienne na liście parametrów procedury read muszą być tego samego typu, takiego jaki został podany w definicji pliku F. Po wczytaniu każdej ze zmiennych wskaźnik pliku ustawiany jest na początku następnej. Jeżeli wskaźnik pliku jest ustawiony poza jego końcem, Eof(F) zwraca wartość true, wystąpi błąd przy próbie dalszego czytania.
Jeżeli program został skompilowany z opcją {$I-} (kontrola błędów operacji wejścia-wyjścia), funkcja IOResult zwróci wartość 0, gdy operacja przebiegła pomyślnie, lub niezerowy kod zaistniałego błędu.
Readln - procedura.
Wykonuje dla pliku tekstowego procedurę Read i przechodzi do nowej linii.
Deklaracja:
Readln(z1, ..., zn)
lub
Readln(var F: text; z1, ..., zn)
F - zmienna plikowa typu tekstowego.
Procedura po wykonaniu procedury Read przechodzi do następnej linii odpowiedniego pliku tekstowego (wskaźnik pliku jest ustawiany za najbliższym znakiem końca linii, lub za końcem zbioru).
Jeżeli program został skompilowany z opcją {$I-} (kontrola błędów operacji wejścia-wyjścia), funkcja IOResult zwróci wartość 0, gdy operacja przebiegła pomyślnie, lub niezerowy kod zaistniałego błędu.