Наиболее часто приходится иметь дело с текстовым представлением информации, поэтому рассмотрим запись и чтение текстового файла.
Последовательность при записи в файл:
1. Приступая к работе с файлом, нужно первым делом вызвать процедуру AssignFile, чтобы файловой переменной поставить в соответствие имя файла на диске:
AssignFile(F, 'MyFile.txt'); |
В результате этого действия поля файловой переменной F инициализируются начальными значениями. При этом в поле имени файла заносится строка 'MyFile.txt'.
2. Так как файла еще нет на диске, его нужно создать и открыть для записи:
3. Теперь запишем в файл несколько строк текста. Это делается с помощью процедур Write и Writeln:
Writeln(F, 'Pi = ', Pi);Writeln(F, 'Exp = ', Exp(1)); |
При работе с файлами первый параметр этих процедур показывает, куда происходит вывод данных.
4. После работы файл должен быть закрыт:
Последовательность при записи в файл:
Рассмотрим теперь, как прочитать содержимое текстового файла.
1. Инициализация файловой переменной (AssignFile).
2. Файл открывается с помощью процедуры Reset:
3. Для чтения элементов используются процедуры Read и Readln, в которых первый параметр показывает, откуда происходит чтение.
4. После работы файл закрывается. В качестве примера приведем фрагмент программы, показывающей последовательно содержимое текстового файла 'MyFile.txt':
uses SysUtils; var F: TextFile; S: string; begin AssignFile(F, 'MyFile.txt'); Reset(F); while not Eof(F) do begin Readln(F, S); Shomessage(S); end; CloseFile(F);end |
Так как обычно размер файла заранее не известен, перед каждой операцией чтения вызывается функция Eof, которая возвращает True, если достигнут конец файла.
Внимание! Текстовые файлы можно открывать только для записи или только для чтения, но не для того и другого одновременно. Для того чтобы сначала записать текстовый файл, а потом прочитать, его нужно закрыть после записи и снова открыть, но уже только для чтения.