Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Файлы Windows






В функциях обработки файлов Windows могут использоваться атрибуты файлов и режимы доступа.

Атрибуты файлов задаются именованными константами: faRead­On­ly (только чтение), faHidden (скрытый), faSysFile (системный), faVolum­ID (имя диска), faDirectory (каталог), faArchive (архив), faAnyFile (любой).

Режимы доступа при открытии файла задаются константами:

fmOpenRead (только чтение), fmOpenWrite (запись), fmOpenReadWrite (чте­ние и запись), fmShareCompat (совместимый с FCB), fmShareExclusive (мо­но­поль­ное использование), fmShareDenyWrite (запрет записи для дру­гих приложений), fmShareDenyRead (запрет чтения для других при­ло­жений), fmShareDenyNone (многопользовательский разделяемый режим).

В системе Windows каждый файл вместо файловой переменной имеет уникальный цифровой дескриптор, называемый обычно Hanle (он обозначен в описаниях процедур и функций буквой H), значение которого формируется функциями открытия файла FileCreate или FileOpen:

FileCreate(S) ‑ создание файла под именем S, возвращение его дескриптора.

FileOpen(S; M: Integer) ‑ открытие уже существующего файла S в режиме M (комбинация fmXXXX и fmShareXXXX, соединенных операциями Or), и возвращение его дескриптора.

Запрещается одновременное использование для одного файла функции и процедур файлов Паскаля и Windows.

Приведем список других основных процедур и функций.

FileClose(H) ‑ закрытие файла с дескриптором H (см. FileCreat, FileOpen).

FileGetDate(H): Integer ‑ возвращает в формате DOS дату и время создания открытого файла с дескриптором H.

FileRead(H; Var B; N: Integer): Integer ‑ читает N байтов из открытого файла c дескриптором H в переменную B и возвращает число cчитанных байтов.

Обычно переменной B является одномерный массив элементов типа Сhar.

FileSeek(H, N, O: Integer): Integer ‑ устанавливает в открытом файле c дес­крип­тором H позицию со смещением N от начала (O=0) текущего положе­ния (O=1) или от конца (O=2) файла соответственно. Возвращает новую по­зицию или -1 в случае ошибки.

FileSetDate(H, A: Integer): Integer ‑ устанавливает в формате DOS дату и время создания (A) открытого файла с дескриптором H и возвращает 0 при успешном выполнении, иначе - код ошибки Windows. Дату можно получить из значения типа TDateTime функцией DateTimeToFileDate.

FileWrite(H; B; N: Integer): Integer ‑ записывает N байтов в открытый файл c дескриптором H из переменной B и возвращает число выведенных байтов.

Пример:

Procedure TForm1.Button1Click(Sender: TObject); //обработка кнопки

Var H: Integer; S, Z: Array [1..5] of Char; //объявление переменных

Begin Try H: =FileCreate('c: \prim.dat'); //открытие создаваемого файла

S: ='12345'; FileWrite(H, S, SizeOf(S)); {вывод S}FileClose(H); //закрытие файла

H: =FileOpen('c: \prim.dat', fmOpenRead); //открытие файла для чтения

FileSeek(H, ‑ 4, 2); //пропуск назад от конца файла 4 байта, текущая позиция 2

FileRead(H, Z, 3); //вывести из файла три байта, начиная с текущего второго

Label1.Caption: =Copy(Z, 1, 3); //вывод Z в метку (будет текст: 234)

Finally FileClose(H); {закрытие файла в любом случае} End; End;






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.