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


Приложение OEM2ANSI - часть 3


// При необходимости создаем файл hf = _lcreat(ofn.lpstrFile, 0); return hf; } else return 0; }

// ------------------------------- // Функция Oem2Ansi // Перекодировка файла // -------------------------------

void Oem2Ansi(HFILE hfSrcFile, HFILE hfDstFile) { // Счетчик прочитанных байт int cbRead;

// Буфер для считанных данных BYTE bBuf[2048];

// Читаем в цикле файл и перекодируем его, // записывая результат в другой файл do { // Читаем в буфер 2048 байт из входного файла cbRead = _lread(hfSrcFile, bBuf, 2048);

// Перекодируем содержимое буфера OemToAnsiBuff(bBuf, bBuf, cbRead);

// Сохраняем содержимое буфера в // выходном файле _lwrite(hfDstFile, bBuf, cbRead);

// Завершаем цикл по концу входного файла } while (cbRead != 0); }

Дополнительно к стандартному для всех приложений Windows файлу windows.h в главный файл приложения включен файл commdlg.h, который содержит определения для функций стандартных диалогов Windows версии 3.1. Загрузочные модули этих функций расположены в отдельной библиотеке динамической загрузки (DLL) с именем commdlg.dll.

Среди функций стандартных диалогов есть удобные функции, предназначенные для поиска и сохранения файлов, для выбора цвета и шрифта, для печати и работы с принтером и т. д. Позже мы рассмотрим применение этих функций, значительно облегчающих труд программиста. В приложении OEM2ANSI мы воспользуемся двумя такими функциями.

В функции WinMain определены переменные для хранения идентификаторов файлов (file handle), вовлеченных в процесс перекодировки:

HFILE hfSrc, hfDst;

Тип HFILE определен в файле windows.h следующим образом:

typedef int HFILE;

Работа функции WinMain начинается с вызова функции GetSrcFile, определенной в нашем приложении. Эта функция используется для поиска и открытия файла. Функция GetSrcFile возвращает идентификатор файла, подлежащего перекодировке, или ноль, если вы отказались от выбора файла. Полученный идентификатор можно использовать для выполнения операций файлового ввода/вывода.

Затем функция WinMain вызывает функцию GetDstFile, предназначенную для выбора имени и расположения в каталогах диска выходного (перекодированного) файла.


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



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