Файлы становятся доступны программе только после выполнения процедуры открытия файла, в которой указывается направление обмена информацией: чтение из файла или запись в него.
В Object Pascal можно открыть файл для чтения, для записи информации, а также для чтения и записи одновременно.
Если делается попытка инициировать чтение из несуществующего файла, возбуждается исключительная ситуация. Чтобы проверить, существует ли дисковый файл, можно использовать стандартную функцию FileExists, которая возвращает Truе, если указанный при обращении этой функции файл существует, и False – если нет. Например,
..... {Файл существует}
..... {Файл не существует}
которая инициирует запись в ранее существовавший текстовый файл для его расширения, при этом указатель файла устанавливается в его конец. Процедура Append применима только к текстовым файлам, т.е. их файловая переменная должна иметь тип TextFile (см. выше). Процедурой Append нельзя инициировать запись в типизированный или нетипизированный файл. Если текстовый файл ранее уже был открыт с помощью Reset или Rewrite, использование процедуры Арpend приведет к закрытию этого файла и открытию его вновь, но уже для добавления записей.
После открытия файла, и работы с ним, т.е. осуществления необходимых операций чтения или записи в него данных, файл необходимо закрыть, для чего прибегают к процедуре CloseFile:
где <имя> – имя файловой переменной.
Процедуры и функции, которые можно использовать с файлами любого вида, приведены в таблице 3.13.
| Procedure AssignFile(var F; FileName: String) ;
| Связывает файловую переменную F с именем файла FileName
|
| Function ChangeFileExt
(const FileName, Extension: String):String;
| Изменяет существующее расширение файла на расширение, заданное параметром Extension
|
| Procedure ChDir(Path: String);
| Изменяет текущий каталог: Path - строковое выражение, содержащее путь к устанавливаемому по умолчанию каталогу
|
| Procedure CloseFile(var F);
| Закрывает файл, однако связь файловой переменной F с именем файла, установленная ранее процедурой AssignFile, сохраняется, поэтому файл можно повторно открыть без дополнительного использования процедуры AssignFile. При создании нового или добавлении к старому файлу процедура обеспечивает сохранение в файле всех новых записей и регистрацию файла в каталоге.
|
| Function DateTimeToFileDate (DateTime: TDateTime): Integer;
| Преобразует значение DateTime в системный формат времени создания (обновления) файла
|
| Function DiskFree(D:Byte): Longint;
| Возвращает объем в байтах свободного пространства на указанном диске: D - номер диска (0 - устройство по умолчанию, 1 - диск А ,2- диск В и т, д.). Функция возвращает значение -1, если указан номер несуществующего диска
|
| Function DeleteFile(const FileName:String): Boolean;
| Уничтожает файл с именем (допускается указание пути) FileName. Возвращает True, если операция прошла успешно
|
| Function DiskSize(D:Byte): Longing;
| Возвращает объем в байтах полного пространства на указанном диске: d - номер диска (0 - устройство по умолчанию, 1 - диск А ,2- диск Д и т. д.). Функция возвращает значение -1, если указан номер несуществующего диска
|
| Function EOF (var F):Boolean;
| Тестирует конец файла и возвращает True, если файловый указатель стоит в конце файла. При записи это означает, что очередной компонент будет добавлен в конец файла, при чтении - что файл исчерпан
|
| Procedure Erase(var F);
| Уничтожает файл F. Перед выполнением процедуры необходимо закрыть файл
|
| Function FileAge(const
FileName: String): Integer;
| Для файла FileName возвращает время его последнего обновления (в системном формате) или -1, если такого файла не существует
|
| Function ExcludeTrailingBackslash (const S: String): String;
| Исключает из строки S замыкающий символ “\” (если этот символ не замыкает строку, возвращает S без изменения)
|
| Function ExpandUNCFileName (const FileName: String): String;
| Дополняет имя файла текущим сетевым каталогом (и диском)
|
| Function ExtractFileDir(const FileName:String): String;
| Извлекает из полного имени файла маршрут доступа к нему (без последнего символа “\”)
|
| Function ExtractFileExt(const FileName: String): String;
| Извлекает из полного имени файла его расширение (с ведущей точкой)
|
| Function ExtractFileName(const FileName: String): String;
| Извлекает из полного имени файла его имя (с расширением)
|
| Function ExtractFilePath(const FileName: String): String;
| Извлекает из полного имени файла маршрут доступа к нему (с последним символом “\”)
|
| Function ExtractRelativePath (const BaseName,
DestName:String): String;
| Извлекает из полного имени файла имя маршрута относительно DestName (промежуточные каталоги заменяются символами “..\”)
|
| Function ExtractShortPathName (const FileName : String): String;
| Преобразует имя файла к короткому формату 8.3 для MSDOS и Windows 3-х
|
| Function FileDateToDateTime (FileDate: Integer): TDateTime;
| Преобразует системный формат FileDate времени создания файла в формат дата-время
|
| Function FileExists(const FileName: String): Boolean;
| Возвращает True, если файл с именем (и, возможно, маршрутом доступа) FileName существует
|
| Function FindFirst
(const Path: String;
Attr: Integer; var F:
TSearchRec): Integer;
| Возвращает атрибуты первого из файлов, зарегистрированных в указанном каталоге: Path - маршрут поиска и маска выбора файлов; Attr - атрибуты выбираемых файлов; F - переменная типа TSesrchRec, в которой будет возвращено имя первого выбранного файла. При успешном поиске возвращает значение 0
|
| Procedure FindClose(var F: TSearchRec);
| Освобождает память, выделенную для поиска файлов функциями FindFirst/FindNext
|
| Function FindNext(var F: TSearchRec): Integer;
| Возвращает в переменой F имя следую-щего файла в каталоге. Переменная F должна предварительно инициироваться обращением к функции FindFirst. При успешном поиске возвращает значение 0
|
| Procedure GetDir(D:Byte;
var S: String);
| Возвращает имя текущего каталога (каталога по умолчанию): D - номер устройства (0 - устройство по умолчанию, 1 - диск А, 2- диск В и т. д.); S - переменная типа String, в которой возвращается путь к текущему каталогу на указанном диске
|
| Function IncludeTrailingBackslash
(const S:String): String;
| Возвращает полный маршрут доступа к файлу с ведомым символом “\”
|
| Function lOResult: Integer;
| Возвращает условный признак последней операции ввода-вывода
|
| Function IsPathDelimiter(const S: String; Index: Integer):
Boolean;
| Возвращает True, если в строке S символ Index есть “\”.
|
| Function MatchesMask
(const Filename, Mask:String): Boolean;
| Возвращает True, если имя FileName соответствует групповому имени Mask
|
| Procedure MkDir(Dir:String);
| Создает новый каталог Dir.
|
| Procedure Rename(var F; NewName: String);
| Переименовывает файл F; NewName - строковое выражение, содержащее новое имя файла. Перед выполнением процедуры необходимо закрыть файл
|
| Procedure Reset(var F: File; [RecSize: Word]);
| Открывает существующий файл. RecSize имеет смысл только для не типизированных файлов и указывает размер блока данных
|
| Procedure Rewrite(var F: File; [Recsize: Word]) ;
| Создает новый файл. Recsize имеет смысл только для не типизированных файлов и указывает размер блока данных
|
| Procedure RmDir(Dir:String);
| Удаляет каталог Dir. Удаляемый каталог должен быть пустым, т.е. не содержать файлов или имен каталогов нижнего уровня
|