Операционная система Microsoft Windows 3.1 для программиста -том 3


Открытие файлов


Для открытия файлов вы можете воспользоваться универсальной функцией OpenFile или более простой (но и более ограниченной) функцией _lopen.

Приложения Windows могут воспользоваться функцией OpenFile , которая предназначена для создания, открытия, повторного открытия и удаления файлов. Приведем прототип этой функции:

HFILE WINAPI OpenFile( LPCSTR lpszFileName, // путь к файлу OFSTRUCT FAR* lpOpenStruct, // адрес структуры OFSTRUCT UINT fuMode); // режим работы и атрибуты

Функция возвращает идентификатор файла, который можно (и нужно) использовать во всех последующих операциях с файлом или -1 при ошибке.

Параметр lpszFileName является указателем на текстовую строку в кодировке ANSI, содержащую путь к файлу и закрытую двоичным нулем. В имени файла не допускается указывать символы шаблона, такие как "*" и "?".

Через параметр lpOpenStruct передается адрес структуры OFSTRUCT, которая заполняется информацией при первом открытии файла.

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

Константа Описание
OF_READ Файл открывается только для чтения
OF_WRITE Файл открывается только для записи
OF_READWRITE Файл открывается для чтения и записи
OF_SHARE_COMPAT Открытие файла в режиме совместимости. В этом режиме несколько приложений могут одновременно открыть файл, причем все эти приложения должны открывать файл в режиме совместимости
OF_SHARE_EXCLUSIVE Файл открывается в монопольном режиме. Для всех других приложений доступ к этому файлу на чтение и запись запрещен
OF_SHARE_DENY_WRITE После открытия файла к нему запрещается доступ со стороны других приложений на запись
OF_SHARE_DENY_READ После открытия файла к нему запрещается доступ со стороны других приложений на чтение
OF_SHARE_DENY_NONE Для открываемого файла не запрещается доступ к файлу ни на чтение, ни на запись
OF_PARSE Если указан этот флаг, функция OpenFile не выполняет никаких других действий, кроме заполнения структуры OFSTRUCT
OF_DELETE Уничтожение существующего файла
OF_VERIFY Если указан этот флаг, функция OpenFile сравнивает время и дату, записанную в структуре OFSTRUCT с временем и датой изменений указанного файла. Если обнаружено несоответствие, функция OpenFile возвращает значение HFILE_ERROR
OF_SEARCH Операционная система Windows выполняет поиск файла в каталогах даже в том случае, когда текстовая строка, указанная параметром lpszFileName, содержит полный путь к файлу
OF_PROMPT Если указан этот флаг, то в случае невозможности найти указанный файл Windows выдает диалоговую панель с предложением вставить в дисковод A: дискету с файлом. Этот флаг используется очень редко
OF_CANCEL Флаг OF_CANCEL используется в сочетании с флагом OF_PROMPT. Если он указан, то в описанную выше диалоговую панель будет добавлена кнопка "Cancel", позволяющая отменить открытие файла. Приложение получит в этом случае код ошибки, соответствующий ненайденному файлу, а пользователь - возможность выйти из безвыходного состояния, в которое он может попасть, не имея под рукой дискеты с нужным файлом
OF_CREATE Выполняется создание нового файла. Если указанный файл существует, он обрезается до нулевой длины
OF_EXIST При указании этого флага функция OpenFile вначале открывает файл, а затем сразу же его закрывает. Эта бесполезная на первый взгляд операция может быть использована для того чтобы убедиться в существовании указанного файла на диске
OF_REOPEN Этот флаг используется при повторном открытии файла на основе информации, хранящейся в структуре OFSTRUCT
<


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



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