Для тех, кто переходит на Delphi не с прежних версий Turbo Pascal, а с С, других языков или начинает освоение с "нуля", более привычными будут стандартные функции работы с файлами Windows. Тем более, что возможности ввода/вывода в них расширены. Каждый файл в этом наборе функций описывается не переменной, а дескриптором (Handle) - 32-разрядной величиной, которая идентифицирует файл в операционной системе.

В Win32 файл открывается при помощи функции, имеющей обманчивое название:

function CreateFile(lpFileName: PChar; dwDesiredAccess,

dsAfiheoreMode: ШОКЕ);
IpSecurityAttributes : PSecurityAttributes;
dsACreationDistribution, dwFlagsAndAttributes: ШОКЕ);
hTemplateFile: THandle): THandle;

Хоть ее название и начинается с Create, но она позволяет не только создавать, но и открывать уже существующие файлы.

Такое огромное количество параметров оправдано, т. к. CreateFile используется для открытия файлов на диске, устройств, каналов, портов и вообще любых источников ввода/вывода. Назначение параметров описано в табл. 9.2.

Таблица 9.2. Параметры функции CreateFile

Параметр

Описание

lpFileName: pChar

Имя открываемого объекта. Может представлять собой традиционную строку с путем и именем файла, UNC (для открытия объектов в сети, имя порта, драйвера или устройства)

dwDesiredAccess,: ГЖЖ)

Способ доступа к объекту. Может быть равен:

• GENERIC_READ -ДЛЯчтения; GENERICWRITE - ДЛЯ ЗаПИСИ.

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

dwShareMode: ГЖГО

Режим совместного использования файла:

• 0 - совместный доступ запрещен;
FILE_SHARE_READ - ДЛЯ ЧТвНИЯ;

• FILE_SHARE_WRITE - ДЛЯ ЗаПИСИ.

Их комбинация - для полного совместного доступа

IpSecurityAttributes: PSecurityAttributes

Атрибуты защиты файла. В Windows 95/98 не используются (должны быть равны nil). В Windows NT/2000 этот параметр, равный nil, дает объекту атрибуты по умолчанию

Таблица 9.2 (окончание)

Параметр

Описание

dwCreationDistribution: DWORD;

Способ открытия файла:

CREATE_NEW - создается новый файл, если

таковой уже существует, функция возвра-

щает ОШИбку ERROR_ALREADY_EXISTS;

CREATE_ALWAYS- создается новый файл,

если таковой уже существует, он переза-

писывается;

OPEN_EXISTING - открывает существую-

щий файл, если таковой не найден, функ-

ция возвращает ошибку;

OPEN ALWAYS - открывает существующий

файл, если таковой не найден, он созда-

ется

dwFlagsAndAttributes: DWORD;

Набор атрибутов (скрытый, системный, сжа-

тый) и флагов для открытия объекта. Подроб-

ное описание см. в документации по Win32

hTemplateFile: THandle

Файл-шаблон, атрибуты которого используют-

ся для открытия. В Windows 95/98 не исполь-

зуется и должен быть равен О

Функция createFile возвращает дескриптор открытого объекта ввода/вывода. Если открытие невозможно из-за ошибок, возвращается код invalid_handle_value, а расширенный код ошибки можно узнать, вызвав фунщию GetLastError.


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в Delphi 7



Новости за месяц

  • Октябрь
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс