Процедура Read в Delphi – позволяет прочитать данные из двоичного или текстового файла.
System unit
- procedure Read (var Value1 {,var Value2 ...};);
- procedure Read (var FileHandle : TextFile; var Value1 {,var Value2 ...};);
- procedure Read (var FileHandle : File; var Value1 {,var Value2 ...};);
Процедура Read читает линейно данные из файла или консоли (console).
Вариант 1.
Используется, чтобы читать текстовые величины с консоли (console).
Вариант 2.
Используется, чтобы читать текстовые величины из текстового файла с данными.
Вариант 3.
Используется, чтобы читать данные из двоичного файла.
Вы должны использовать AssignFile, чтобы назначать файл для операций чтения/записи и открыть файл до процедуры чтения.
Для текстовых файлов, каждая строка текста разбита на переменные. Эти переменные могут быть текстовыми или числовыми типами.
Для строк (string), будет прочитана вся строка, если она не превышает размер переменной.
При синтаксическом анализе чтения для чисел, символы интервала и концов строки являются разделителями между различными переменными. Если величина числа превышает возможность переменной, она выбрасывается в переменной не вызывая исключение.
При чтении строк или символов, ReadLn должен быть выполнен, пока не достигнут Eoln (конец линии). В противном случае, многократно возврат вызовов последующего Чтения будет невозможно.
Для двоичных файлов, данные оцениваются Value1, Value2 и т.п., прочитаны из файла данных.
Если файл данных – типизированный файл (файл определён на содержимое конкретного типа данных), тогда эти величины должны быть того же самого типа. Например, файл типа – запись, значит переменные, которые будут прочтены из этого файла, тоже должны быть такими же записями.
Примечание.
Вы не можете использовать Read, чтобы читать из нетипизированного двоичного файла (который объявлен как File без указанного типа).
Для чтения из нетипизированного двоичного файла, используйте BlockRead.
Read не использует буферизацию, поэтому BlockRead более эффективен.
Read также является директивой Delphi. Она используется с ключевым словом Property.
Процедура Read: Чтение простых символов единовременно из текстового файла
var
myFile : TextFile;
letter : char;
text : string;
begin
// Попытка открыть файл Test.txt для записи в него
AssignFile(myFile, 'Test.txt');
ReWrite(myFile);
// Запись строки текста в файл
WriteLn(myFile, 'Hello');
WriteLn(myFile, 'To you');
// Закрытие файла
CloseFile(myFile);
// Переоткрытие файла только для чтения
FileMode := fmOpenRead;
Reset(myFile);
// Показ содержимого файла
while not Eof(myFile) do
begin
// Процесс считывание одной строки
ShowMessage('Начало новой строки :');
while not Eoln(myFile) do
begin
Read(myFile, letter); // Чтение и отображение одного символа
ShowMessage(letter);
end;
ReadLn(myFile, text);
end;
// Закрываем файл в последний раз
CloseFile(myFile);
end;
Результат
Начало новой строки :
H
e
l
l
o
Начало новой строки :
T
o
y
o
u
Процедура Read: Чтение word данных из типизированного двоичного файла
var
myWord, myWord1, myWord2 : Word;
myFile : File of Word;
begin
// Попытка открыть двоичный файл Test.cus для записи
AssignFile(myFile, 'Test.cus');
ReWrite(myFile);
// Запись нескольких строк Word данных в файл
myWord1 := 234;
myWord2 := 567;
Write(myFile, myWord1, myWord2);
// Закрываем файл
CloseFile(myFile);
// Переоткрываем файл в режиме только для чтения
Reset(myFile);
// Показ содержимого файла
while not Eof(myFile) do
begin
Read(myFile, myWord);
ShowMessage(IntToStr(myWord));
end;
// Закрываем файл в последний раз
CloseFile(myFile);
end;
Результат
234
567
Похожие функции, процедуры и команды
AssignFile — связывает дескриптор файла с бинарным или текстовым файлом.
CloseFile — закрывает открытый файл.
Eof — возвращает true, если позиция курсора находится в конце файла открытого с помощью Reset.
Eoln — возвращает true, если позиция курсора находится в конце строки.
File — определяет типизированный или нетипизированный файл.
ReadLn — позволяет прочитать полную строку данных из текстового файла.
Reset — открывает текстовый файл для чтения, или двоичный файл для чтения/записи.
TextFile — объявляет типа файл для того, чтобы сохранить строки текста.
Write — записывает данные в бинарный или текстовый файл.
WriteLn — записывает законченную строку данных в текстовый файл.
