Read

Печать
Рейтинг пользователей: / 1
ХудшийЛучший 

Read

Описание

1 procedure Read ( var Value1 {,var Value2 ...}; ) ;
2 procedure Read ( var FileHandle : TextFile; var Value1 {,var Value2 ...}; ) ;
3 procedure Read ( var FileHandle : File; var Value1 {,var Value2 ...}; ) ;

Delphi процедура Read читает линейно данные из файла или консоли ( console ).

Версия 1

Используется, чтобы читать текстовые величины с консоли ( console ).

Версия 2

Используется, чтобы читать текстовые величины из текстового файла с данными.

Версия 3

Используется, чтобы читать данные из двоичного файла.

Вы должны использовать AssignFile, чтобы назначать файл для операций - чтения / записи; и открыть файл до процедуры чтения.

Для текстовых файлов, каждая строка текста разбита на переменные. Эти переменные могут быть текстовыми или числовыми типами.

Для строк ( string ), будет прочитана вся строка, если она не превышает размер переменной.

При синтаксическом анализе чтения для чисел, символы интервала и концов строки являются разделителями между различными переменными. Если величина числа превышает возможность переменной, она выбрасывается в переменной не вызывая исключение.

При чтении строк или символов, ReadLn должен быть выполнен, пока не достигнут Eoln (конец линии). В противном случае, многократно возврат вызовов последующего Чтения будет невозможно.

Для двоичных файлов, данные оцениваются Value1, Value2 и т.п., прочитаны из файла данных.

Если файл данных - типизированный файл (файл определён на содержимое конкретного типа данных), тогда эти величины должны быть того же самого типа. Например, файл типа - запись, значит переменные, которые будут прочтены из этого файла, тоже должны быть такими же записями.

Пример кода

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

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

 

Примечание

Вы не можете использовать Read, чтобы читать из нетипизированного двоичного файла (который объявлен как File без указанного типа).

Для чтения из нетипизированного двоичного файла, используйте BlockRead.

Read не использует буферизацию, поэтому BlockRead более эффективен.

Read также является директивой Delphi. Она используется с ключевым словом Property.