Файлы в Delphi: Чтение данных из файла

Чтение из файла выполняется при помощи инструкций read и readln, которые в общем виде записываются следующим образом: 

read(ФайловаяПеременная, СписокПеременных);
readln (ФайловaяЛеременшя, СписокПеременных) ; 

где:

  • ФайловаяПеременная — переменная типа Textfile;
  • списокпеременных — имена переменных, разделенные запятыми.

Закажи видеокурс по Delphi прямо сейчас и получи 106 видеоуроков:

Файлы в Delphi: Чтение данных из файла 

ЗАКАЗАТЬ



Посмотрите подробный видеоурок по работе с файлами в Delphi

Скачайте больше видеоуроков по Delphi бесплатно прямо сейчас - скачать. 

Чтение чисел

Следует понимать, что в текстовом файле находятся не числа, а их изображения. Действие, выполняемое инструкциями read или readin, фактически состоит из двух: сначала из файла читаются символы до появления разделителя (пробела или конца строки), затем прочитанные символы, являющиеся изображением числа, преобразуются в число, и полученное значение присваивается переменной, имя которой указано в качестве параметра инструкции read ИЛИ readln.

Например, если текстовый файл a:\data.txt содержит следующие строки:

23 15

45 28

56 71

 

то в результате выполнения инструкций:

 

значения переменных будут следующими: а = 23, b = 15, с = 45, d = 23.

 

Отличие инструкции readin от read состоит в том, что после считывания из файла очередного числа и присвоения полученного значения переменной, имя которой стоит последним в списке параметров инструкции readin, указатель чтения из файла автоматически перемешается в начало следующей строки файла, даже в том случае, если за прочитанным числом  есть еше числа.

Поэтому в результате выполнения инструкций

 

значения переменных будут следующими: а = 23, b = 45, с = 28, d = 56.

 

Если при чтении значения численной переменной в файле вместо изображения числа будет какая-то другая последовательность символов, то произойдет ошибка.

Чтение строк

В программе строковая переменная может быть объявлена с указанием длины или без нее.

Например:

При чтении из файла значения строковой переменной, длина которой явно задана в ее объявлении, считывается столько символов, сколько указано в объявлении, но не больше, чем в текущей строке.

 

При чтении из файла значения строковой переменной, длина которой явно не задана в объявлении переменной, значением переменной становится оставшаяся после последнего чтения часть текущей строки. Другими словами, если надо прочитать из файла всю строку, то объявите строковую переменную, длина которой заведомо больше самой длинной строки файла, и считывайте строки в ату переменную.

 

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

Пусть, например, текстовый файл freinds.txt содержит строки:

Косичкина Маша

Васильев Антон

Цой Лариса

 

Конец файла

Пусть на диске есть некоторый текстовый файл. Нужно в диалоговое окно вывести содержимое этого файла. Решение задачи довольно очевидно: надо открыть файл, прочитать первую строку, затем вторую, третью и т. д. до тех пор, пока не будет достигнут конец файла. Но как определить, что прочитана последняя строка, достигнут конец файла? Для определения конца файла можно воспользоваться функцией EOF (End Of File — конец файла).

 

У функции EOF один параметр — файловая переменная. Значение функции EOF равно False, если прочитанный элемент данных не является последним в файле, т. е. возможно дальнейшее чтение. Если прочитанный элемент данных является последним, то значение EOF равно True.

Значение функции EOF можно проверить сразу после открытия файла. Если при этом оно окажется равным True, то это значит, что файл не содержит ни одного элемента данных, т. е. является пустым (размер такого файла равен нулю).

 

В листинге 7.5 приведена процедура, которая выполняет поставленную задачу. Она читает строки из файла, имя которого ввел пользователь во время работы программы, и выводит эти строки в поле Memo. Окно программы приведено на рис. 7.6.

Файлы в Delphi: Чтение данных из файла

Листинг 7.5. Чтение из файла 


 

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

 

Наличие кнопки Сохранить и соответствующей ей процедуры позволяет сохранить содержимое поля Memo в файле, т. е. программа чтение из файла представляет собой примитивный редактор текста.

 

Добавление очередной прочитанной из файла строки в поле Memo выполняется применением метода Add к свойству Lines.

dle

Помоги проекту! Расскажи друзьям об этом сайте: