|
Учебник по Delphi
Работа с файлами.
Чтобы создать эффектный проект, не помешает освоить работу с файлами. Причем,
например, не через драйверы баз данных, а просто записать что-либо куда-нибудь
или прочитать. Delphi позволяет выполнять такие действия.
Если не касаться нестандартных способов доступа к файлам и банальной работы
с базами данных, то остаются три способа доступа к файлам в Delphi: текстовые,
типизированные и нетипизированные файлы.
Использование процедур и функций для работы с текстовыми, типизированными
и нетипизированными файлами очень похоже, различия лишь в деталях.
Для работы с файлом необходимо назначить ему файловую переменную, то есть ассоциировать
ее с именем файла на диске. Через эту переменную будет выполняться
вся работа с файлом. Переменная назначается с помощью процедуры AssignFile,
которая имеет следующий синтаксис:
procedure AssignFile(var F; FileName: String);
Вызов AssignFile инициализирует файловую переменную F любого типа. После
вызова данной процедуры F становится ассоциированной с внешним файлом
FileName до того момента, пока он не будет закрыт. Если параметр
FileName не
задан, то AssignFile ассоциирует F со стандартным входным или выходным файлом.
Нельзя использовать AssignFile с открытыми файлами.
После вызова AssignFile файл можно создать или открыть для чтения и записи.
Для создания файла используется процедура Rewrite:
procedure Rewrite(var F: File [; RecSize: Word ] );
После вызова данной процедуры создается файл с именем, ассоциированным с указанной
файловой переменной (F). В случае использования Rewrite с нетипизированными
файлами можно указать длину записи (RecSize). Если длина не задана,
то она автоматически устанавливается равной 128 байт.
Если файл с таким же именем, как у создаваемого файла, уже существует, то
Rewrite удалит его и создаст новый. Обратите внимание, что процедура Rewrite
удаляет существующий файл, не задавая никаких вопросов. Программист должен
сам позаботиться о том, чтобы программа спрашивала у пользователя, удалить или
оставить существующий файл. Если файл с таким же именем уже открыт, то он
будет закрыт и создан заново. Если создаваемый файл текстовый, то после создания
он будет открыт только в режиме записи. Все остальные типы файлов (нетекстовые)
после вызова Rewrite доступны как для записи, так и для чтения.
Если же файл не нужно создавать, то его можно открыть процедурой Reset:
procedure Reset(var F [: File; RecSize: Word ] );
Процедура Reset открывает существующий файл. При этом текущая позиция чтения/записи
будет в начале файла. Если файл уже открыт, то после вызова Reset
он будет закрыт и открыт заново.
Как и в случае с Rewrite, при использовании Reset с нетипизированными файлами
можно указать длину записи. По умолчанию она равна 128 байт.
После работы с файлом его необходимо закрыть. Пока файл не закрыт, другие
программы не могут с ним работать. Операционная система автоматически закрывает
все открытые файлы при выходе из программы. Но все-таки пользователи
должны закрывать файлы сами.
Для закрытия файла в Delphi предусмотрена процедура cioseFile:
procedure CioseFile(var F);
Она прекращает связь файловой переменной с заданным в AssignFile именем
файла и освобождает файл, то есть его смогут использовать другие программы.
|
|
|