Самоучитель по Delphi 7 для профессионалов


Ввод/вывод с использованием функций Windows API



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

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

function CreateFile(IpFileName: PChar; dwDesiredAccess, 

dwShareMode: DWORD; IpSecurityAttributes: PSecurityAttributes;

 dwCreationDistribution, dwFlagsAndAttributes: DWORD; 

hTemplateFile: THandle): THandle;

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

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

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

Параметр

Описание

IpFileName:pChar

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

dwDesiredAccess,:DWORD

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

  •  GENERIC READ — для чтения; 

  •  GENERIC WRITE — для записи.

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

dwShareMode:DWORD

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

  •  0 — совместный доступ запрещен;

  • FILE SHARE READ — для чтения;

  • FILE_SHARE_WRITE -  для записи.

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

IpSecurityAttributes :PSecurityAttributes

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

dwCreationDistribution: DWORD;

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

  •  CREATE NEW — создается новый файл, если таковой уже существует, функция возвращает ошибку ERROR_ALREADY_EXISTS;
  •  CREATE ALWAYS — создается новый файл, если таковой уже существует, он перезаписывается;
  •  OPEN EXISTING— открывает существующий файл, если таковой не найден, функция возвращает ошибку;
  •  OPEN ALWAYS — открывает существующий файл, если таковой не найден, он создается

dwFlagsAndAttributes: DWORD;

Набор атрибутов (скрытый, системный, сжатый) и флагов для открытия объекта. Подробное описание см. в документации по Win32

hTemplateFile: THandle

Файл-шаблон, атрибуты которого используются для открытия. В Windows 95/98 не используется и должен быть равен 0




Начало  Назад  Вперед



Книжный магазин