русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Доступ и работа с файлом


Дата добавления: 2015-07-23; просмотров: 561; Нарушение авторских прав


Файлы становятся доступны программе только после выполнения процедуры открытия файла, в которой указывается направление обмена информацией: чтение из файла или запись в него.

В Object Pascal можно открыть файл для чтения, для записи информации, а также для чтения и записи одновременно.

Для чтения файл открывается с помощью стандартной процедуры Reset:

 

Reset (<имя>);

 

где <имя> – имя файловой переменной, связанной ранее процедурой AssignFile с уже существующим файлом.

При выполнении процедуры Reset дисковый файл подготавливается к чтению информации. В результате специальная переменная-указатель, связанная с этим файлом, будет указывать на начало файла, т.е. на компонент с порядковым номером 0.

Если делается попытка инициировать чтение из несуществующего файла, возбуждается исключительная ситуация. Чтобы проверить, существует ли дисковый файл, можно использовать стандартную функцию FileExists, которая возвращает Truе, если указанный при обращении этой функции файл существует, и False – если нет. Например,

ifFileExists(FileName) then

..... {Файл существует}

Else

..... {Файл не существует}

end;

 

Открытие файла для записи осуществляется с помощью процедуры Rewrite:

 

Rewrite (<имя>);

 

При выполнении процедуры Rewrite существующий файл (если он был) уничтожается и никаких сообщений об этом в программу не передается. Новый файл подготавливается к приему информации, и его указатель принимает значение 0.

Для добавления информации в текстовый файл пользуются процедурой Append:

 

Append (<имя>);

 

которая инициирует запись в ранее существовавший текстовый файл для его расширения, при этом указатель файла устанавливается в его конец. Процедура Append применима только к текстовым файлам, т.е. их файловая переменная должна иметь тип TextFile (см. выше). Процедурой Append нельзя инициировать запись в типизированный или нетипизированный файл. Если текстовый файл ранее уже был открыт с помощью Reset или Rewrite, использование процедуры Арpend приведет к закрытию этого файла и открытию его вновь, но уже для добавления записей.



 

После открытия файла, и работы с ним, т.е. осуществления необходимых операций чтения или записи в него данных, файл необходимо закрыть, для чего прибегают к процедуре CloseFile:

CloseFile (<имя>);

 

где <имя> – имя файловой переменной.

Процедуры и функции, которые можно использовать с файлами любого вида, приведены в таблице 3.13.

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

 



<== предыдущая лекция | следующая лекция ==>
Объявление и связывание файла | Текстовые файлы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.305 сек.