Текстовые файлы в Delphi

  • 09 сент. 2011 г.
  • 1880 Слова
Лабораторная работа № 4

Работа с текстовыми файлами

В Delphi, как и в Паскале имеются средства, позволяющие вводить данные из файла и выводить данные в файл. Наиболее широко используется ввод-вывод данных из текстовых файлов.
Для получения доступа к текстовому файлу в Delphi нужно сначала объяви переменную типа TextFile, которая называется дескриптором файла. В дескрипторе хранитсяуказатель файла, который похож на курсор в текстовом редакторе. Как и курсор, указатель файла обозначает текущую позицию в открытом текстовом файле. В режиме ввода указатель файла определяет следующий элемент данных, который будет считан из файла. В случае текстового файла таким элементом данных является символ. В режиме вывода указатель файла определяет позицию, в которую будет записан следующийэлемент данных.
Объявив дескриптор файла, нужно связать его с файлом данных с помощью процедуры AssignFile(), синтаксис которой имеет вид
AssignFi1е (дескриптор_файла, имя_файла);
Строковое выражение имя_файла должно содержать любое правильное имя файл Windows. Если файл находится не в текущем каталоге, в выражении имя_файла должен быть указан его полный маршрут, включая имя диска ивсех подкаталогов.
И наконец, для получения доступа к файлу его нужно открыть. Текстовый файл можно открыть или для ввода, или для вывода, но не для обеих операций одновременно. Процедура Reset () открывает или повторно открывает текстовый файл в режиме ввода, а процедуры Rewrite () и Append () открывают или повторно открывают текстовый файл в режиме вывода. Синтаксис этих процедур имеет вид:Reset (дескриптор_файла);
Rewrite (дескриптор_файла);
Append (дескриптор_фаила);
Процедура Reset() открывает существующий файл данных, ассоциированный с заданным дескриптором, и устанавливает указатель файла в его начало. Если файл уже открыт то сначала он закрывается, а затем открывается повторно. Если файла данных с данным именем не существует, то генерируется ошибка file not found (файл ненайден).
Процедура Rewrite() создает новый файл данных с именем, ассоциированным с дескриптором, и устанавливает указатель файла на его начало. Если файл с этим именем уже существует, то он удаляется и вместо него создается новый файл с этим же именем. Если файл уже открыт, то он закрывается и удаляется, а вместо него создается новый файл. Таким образом, процедура Rewrite() или создает новыйфайл, или перезаписывает существующий файл заново.
Для добавления данных в конец файла используется процедура Append(). Она открывает существующий файл, имя которого ассоциировано с дескриптором, и устанавливает указатель файла в конец файла. Если файл уже открыт, то процедура Append() закрывает его, а затем открывает повторно. Если файла с этим именем не существует, то генерируется ошибка filenot found.
Когда текстовый файл открыт в режиме чтения, из него можно читать данные с помощью процедуры Read(), синтаксис которой имеет вид
Read(дескриптор_файла, переменная);
Процедура Read() выполняет следующие операции.
1. Считывает из файла, ассоциированного с дескриптором, порцию данных, на которую показывает указатель файла.
2. Сохраняет считанные данные в переменной.3. Передвигает указатель файла на следующую порцию данных.
Если, например, в текущей позиции файла хранится целое число, то оно должно быть считано в переменную целого типа. Присутствующие в текстовом файле символы-разделители (пробелы, символы табуляции, символы перехода на новую строку) отделяют друг от друга числа, записанные в десятичном формате.
Несколько вызовов процедуры Read()можно объединить в один вызов. Например, группа операторов
Read(myFile, variablel);
Read(myFile, variable2);
Read(myFile, variable3);
эквивалентна одному оператору
Read(myFile, variablel, variable2, variable3);
Общий синтаксис процедуры Read() имеет вид
Read (дескриптор_файла, переменная1 [, переменная2, ...]);
В отличие от Read(), процедура Readln() читает данные и...