Процедура 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 — записує закінчений рядок даних у текстовий файл.
