Учебник по 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 именем файла и освобождает файл, то есть его смогут использовать другие программы.




 

Рейтинг@Mail.ru          Rambler's Top100

X-ZiBiT