Лекция 09 Ввод-вывод с использованием Winapi содержание: 09. 00. Аннотация icon

Лекция 09 Ввод-вывод с использованием Winapi содержание: 09. 00. Аннотация



НазваниеЛекция 09 Ввод-вывод с использованием Winapi содержание: 09. 00. Аннотация
страница1/8
Дата конвертации06.10.2012
Размер458.46 Kb.
ТипЛекция
  1   2   3   4   5   6   7   8

Лекция 09
Ввод-вывод с использованием WinAPI

Содержание:


09.00. Аннотация.

09.01. Файловые операции ввода-вывода с использованием WinAPI

09.02. Пример создания «каркаса» приложения средствами WinAPI в C++

09.03. Резюме

09.04. Вопросы и упражнения.

09.05. Г Л О С С А Р И Й

09.06. Приложение № I

09.07. Приложение № II

09.08. Приложение № III

09.09. Приложение № IV

09.10. Приложение № V

09.11. Приложение № VI

09.00. Аннотация.


На этой лекции Вы познакомитесь с файловыми операциями ввода-вывода с использованием API Windows, а также научитесь программировать «каркас» приложения Windows по предложенным автором шаблонам. Это поможет Вам впоследствии легко создавать простейшие программы Windows.
^

09.01. Файловые операции ввода-вывода
с использованием WinAPI

Содержание


09.01.01. Особенности файловых операций в Microsoft Windows

09.01.02. Функции создания и закрытия файлов методами Win API

09.01.03. Функции чтения-записи в файл

09.01.04. Стандартные «диалоги» открытия и сохранения файлов

09.01.01. Особенности файловых операций в Microsoft Windows


=== *** === *** ===

Файловые операции в операционной системе Microsoft Windows отличаются от файловых операций MS-DOS следующим:

  1. Заявлена переносимость всех файловых операций в операционных системах MS Windows на последующие версии. Это значит, что если строго следовать рекомендациям Microsoft Windows в описании её файловых функций, программа будет «эффективно компилироваться» как для платформы Win16, так и для платформы Win32 и Win64;

  2. Указанные ниже функции позволяют создавать текстовые файлы размером как до 64 Кбайт, так и до 2 Гбайт (напомню, что в MS-DOS максимальный размер текстового файла – 64 Кбайт);

  3. Имена файлов теперь могут писаться в кодировке ANSI с использованием «длинных имён» файлов. В MS-DOS возможно именовать файлы только в кодировке OEM с «короткими» именами файлов и каталогов;

  4. Содержимое файла, созданного средствами Windows, сразу и целиком читается в оперативную память компьютера, и уже потом анализируются другими функциями (например, sscanf). В MS-DOS Вы могли вводить и выводить файлы последовательно по строкам, по формату и по записям (используя функции fges, getc, fscanf и др.). Используемый в Windows способ чтения-записи является более «безопасным» для обработчика данных и операционной системы;

  5. Следствие вышесказанного. В операционной системе Microsoft Windows нужно открывать файл, осуществлять все операции чтения записи и закрывать файл в пределах обработчика одного сообщения из очереди сообщений Windows.
    В MS-DOS Вы могли вначале программы открыть файл, где-то в теле программы осуществить операции ввода-вывода, и закрыть файлы в конце программы. В Windows этот способ не работает – программа в ней выполняется не в том порядке, в котором записаны действия, а в том порядке, в каком поступают программе системные вызовы. Вследствие этого, по «логике программы», закрытие файла может произойти прежде, чем операция записи-чтения из файла. Естественно, произойдёт «отказ системы» со всеми вытекающими неприятными последствиями;

  6. Функции открытия файлов возвращают операционной системе намного больше информации, чем «обычные» функции открытия файлов MS-DOS. При этом принимать решение, использовать или нет эту расширенную информацию, может сам программист;

  7. «Стандартными средствами открытия файлов» в Microsoft Windows невозможно открытие файлов для добавления информации в конец файла.… Наверное, Вы поняли почему. Если нет – отвечаю: при чтении всего файла в буфер в конец файла можно записать любую информацию, с тем чтобы затем её сбросить на диск под тем же именем, и дополнительного режима открытия файлов не требуется;

  8. Помимо функций файлового ввода-вывода Microsoft Windows Вы также можете использовать аналогичные функции ввода-вывода MS-DOS, с указанными Выше ограничениями. Но учтите, что функциями ввода-вывода MS-DOS (всё равно, являются ли они консольными, потоковыми или другими), нельзя выводить текст на экран, принтер, COM порт, а также вводить данные с клавиатуры;

Примечание: операции потокового вывода на экран и ввода с клавиатуры можно также осуществить и в Windows, указав опцию в IDE при создании проекта «консольное приложение Windows». Этот вопрос Вы можете изучить самостоятельно [38].
^

09.01.02. Функции создания и закрытия файлов
методами Win API


Для создания, открытия и закрытия файлов Windows API использует следующие функции:

ФУНКЦИЯ OpenFile

СИНТАКСИС: HFILE WINAPI OpenFile( lpszFileName, lpOpenStruct, fuMode)

LPCSTR lpszFileName — путь к файлу (в виде дальнего указателя на строку в кодировке ANSI, заканчивающуюся двоичным нулём);

OFSTRUCT FAR* lpOpenStruct — адрес структуры OFSTRUCT, заполняемой при первом открытии файла;

UINT fuMode — режим работы и атрибуты файла;

НАЗНАЧЕНИЕ: Открывает файл и связывает с ним дескриптор файла;

ОПИСАНИЕ: Функция предназначена для создания, открытия, повторного открытия и удаления файлов. В имени файла допускается указывать символы шаблона, такие как «*» и «?». Параметр fuMode используется для определения действий, выполняемых функцией OpenFile, а также задаёт атрибуты файла. Когда функция OpenFile вызывается в первый раз для открытия файла, она заполняет структуру OFSTRUCT, описанную в приложении №1 (смотри пункт 09.06 данной лекции);

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Функция возвращает идентификатор файла, который можно (и нужно) использовать во всех последующих операциях с файлом, или -1 при ошибке;

ПЕРЕНОСИМОСТЬ: Версии MS Windows 3.0 и старше;

ФУНКЦИЯ _lopen

СИНТАКСИС: HFILE WINAPI _lopen( LPCSTR lpszFileName, int fuOpenMode)

LPCSTR lpszFileName — путь к файлу (в виде дальнего указателя на строку в кодировке ANSI, заканчивающуюся двоичным нулём);

int fnOpenMode — параметр определяет режим, в котором открывается файл;

НАЗНАЧЕНИЕ: Открывает файл и связывает с ним дескриптор файла (упрощённая версия);

ОПИСАНИЕ: Функция предназначена для открытия, повторного открытия файлов. В имени файла допускается указывать символы шаблона, такие как «*» и «?». Параметр fuMode используется для определения действий, выполняемых функцией _lopen;

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Функция возвращает идентификатор файла, который можно (и нужно) использовать во всех последующих операциях с файлом, или HFILE_ERROR при ошибке;

ПЕРЕНОСИМОСТЬ: Версии MS Windows 3.0 и старше;

ФУНКЦИЯ _lclose

СИНТАКСИС: HFILE WINAPI _lclose( hf )

HFILE hf — дескриптор закрываемого файла;

НАЗНАЧЕНИЕ: Закрывает файл, связанный с соответствующим дескриптором;

ОПИСАНИЕ: Закрывает файл с дескриптором hf;

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Если файл закрыт успешно, _lclose возвращает нулевое значение. При ошибке возвращается значение: HFILE_ERROR;

ПЕРЕНОСИМОСТЬ: Версии MS Windows 3.0 и старше;

ФУНКЦИЯ _lcreat

СИНТАКСИС: HFILE _lcreat( lpszFileName, fuAttribute)

LPCSTR lpszFileName — путь к файлу (в виде дальнего указателя на строку в кодировке ANSI, заканчивающуюся двоичным нулём);

int fuAttribute — переменная позволяет определить атрибуты создаваемого файла;

НАЗНАЧЕНИЕ: Создаёт файл средствами Win API;

ОПИСАНИЕ: Это более простая, чем OpenFile, функция для создания новых файлов. Имя файла не должно содержать метасимволов шаблона. Если указанный первым параметром файл не существует, функция _lcreat создаёт его и открывает для записи, возвращая его дескриптор файла. Если файл существует, он обрезается до нулевой длины, и затем открывается для чтения и записи;

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Идентификатор созданного файла;

ПЕРЕНОСИМОСТЬ: Версии MS Windows 3.0 и старше;

Отличие функции OpenFile от функции _lopen заключается в поддержке ей расширенной информации о файле, передаваемой структуре OFSTRUCT, и в большем числе поддерживаемых флагов команды. Информацию о флагах функций OpenFile, _lcreate и _lopen смотри в таблице 09.I. Описание функций смотри в приложении №I к данной лекции (пункт 09.006).
Таблица 09.I.
Флаги и режимы открытия файлов средствами WinAPI.

<>
  1   2   3   4   5   6   7   8




Похожие:

Лекция 09 Ввод-вывод с использованием Winapi содержание: 09. 00. Аннотация iconЛекция 02 Прямой ввод-вывод: организация и функции Вывод на дисплей. Часть Содержание: 02. 00. Аннотация. 02. 01. Вывод символов на экран 02. 02. Режимы работы дисплея
«Среднеуровневый» ввод-вывод возможен только на консоль, работающую в «текстовом режиме», с помощью «базовых» прерываний ms-dos и...
Лекция 09 Ввод-вывод с использованием Winapi содержание: 09. 00. Аннотация iconЛекция 08 Буферизированный (потоковый) ввод-вывод Часть III. Содержание 08. 00. Аннотация
На данной лекции Вы познакомитесь с «потоковым» вводом-выводом данных, и подробно рассмотрите операцию вывода в стандартные потоки...
Лекция 09 Ввод-вывод с использованием Winapi содержание: 09. 00. Аннотация iconЛекция 06 Буферизированный (потоковый) ввод-вывод Содержание 06. 00. Аннотация
...
Лекция 09 Ввод-вывод с использованием Winapi содержание: 09. 00. Аннотация iconЛекция 03 Прямой ввод-вывод: Часть II содержание: 03. 00. Аннотация. 03. 01. Очистка экрана 03. 02. Управление курсором 03. 03. Резюме 03. 04. Вопросы и упражнения. 03. 05. Глоссари й
На данной лекции Вы познакомитесь с операциями позиционирования курсора на экране дисплея
Лекция 09 Ввод-вывод с использованием Winapi содержание: 09. 00. Аннотация iconЛекция 07 Буферизированный (потоковый) ввод-вывод Часть II содержание 07. 00. Аннотация
...
Лекция 09 Ввод-вывод с использованием Winapi содержание: 09. 00. Аннотация iconЛекция 05 Ввод с клавиатуры Содержание: 05. 00. Аннотация
«на среднем уровне» позволяет вводить и выводить текстовые символы в файл, на консоль, модем, удалённый терминал. При этом в ms-dos...
Лекция 09 Ввод-вывод с использованием Winapi содержание: 09. 00. Аннотация iconЛекция 12 Вывод текста на экран и устройство в Windows Содержание: 12. 00. Аннотация
На данной лекции описываются «собственно» функции вывода текста в окно приложения или во всплывающее окно. Также даётся представление...
Лекция 09 Ввод-вывод с использованием Winapi содержание: 09. 00. Аннотация icon№ п/п Термин
Потоковый ввод-вывод, направленный не на одно из стандартных устройств ввода-вывода, а в текстовый или двоичный файл
Лекция 09 Ввод-вывод с использованием Winapi содержание: 09. 00. Аннотация iconЛекция 10 Общие сведения о контексте gdi содержание 10. 00. Аннотация
На лекции описываются типы контекста отображения, правила их использования и функции для работы с разными типами контекстов. Описывается,...
Лекция 09 Ввод-вывод с использованием Winapi содержание: 09. 00. Аннотация iconЛекция 11 Атрибуты и функции работы с контекстом (приложение) Содержание: 11. 00. Аннотация
На данной лекции приводится схематичное описание контекста gdi в Windows api. Вы познакомитесь с тем, какие вообще бывают способы...
Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©podelise.ru 2000-2014
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы

Разработка сайта — Веб студия Адаманов