в цикле содержимое входного файла
Эта функция считывает в цикле содержимое входного файла в буфер, перекодирует буфер и затем записывает его в выходной файл:
do { cbRead = _lread(hfSrcFile, bBuf, 2048); OemToAnsiBuff(bBuf, bBuf, cbRead); _lwrite(hfDstFile, bBuf, cbRead); } while (cbRead != 0);
Чтение файла выполняется функцией _lread, которая входит в состав программного интерфейса Windows. В качестве первого параметра этой функции передается идентификатор файла, в качестве второго - указатель на буфер, в который выполняется чтение, и в качестве третьего - размер буфера. Функция _lread возвращает количество прочитанных из файла байт данных.
Запись буфера в файл выполняется функцией _lwrite, которая также входит в состав программного интерфейса Windows. Параметры этой функции аналогичны параметрам функции _lread.
Подробнее функции для работы с файлами мы рассмотрим позже в отдельной главе.
Для перекодировки буфера используется знакомая вам функция OemToAnsiBuff. И первый, и второй параметры этой функции указывают на один и тот же буфер, поэтому перекодировка будет выполняться "по месту".
Вы можете добавить до или после функции OemToAnsiBuff свою собственную функцию перекодировки, выполняющую какие-либо дополнительные перекодирующие действия.
На рис. 5.8 представлен результат перекодировки приложением OEM2ANSI текстового файла, подготовленного в MS-DOS и содержащего символы кириллицы.
Рис. 5.8. Исходный и преобразованный файлы
В верхней части рис. 5.8 изображено окно редактирования системы разработки Borland C++ for Windows, в которое загружен текст в кодировке OEM. Этот текст содержит символы кириллицы, которые в кодировке ANSI отображаются в виде различных "нечитаемых" символов. В нижней части рис. 5.8 расположено окно, в которое загружен перекодированный текст.
Если при использовании нашего приложения OEM2ANSI вы получили результаты, отличные от представленного на рис. 5.8, вам следует убедиться в том, что на вашем компьютере была выполнена локализация операционной системы Windows и что она была выполнена правильно.Для локализации Windows можно использовать такие программные средства, как CyrWin или ParaWin. Вы можете также приобрести локализованную версию Windows 3.1, которая поставляется в России фирмой Microsoft A.O.
На базе приложения OEM2ANSI вы без труда сможете создать приложение с названием, например, ANSI2OEM, выполняющее обратную перекодировку. Мы предлагаем вам создать такое приложение самостоятельно.
Файл определения модуля для приложения OEM2ANSI представлен в листинге 5.6.
Листинг 5.6. Файл oem2ansi\oem2ansi.def
; ============================= ; Файл определения модуля ; ============================= NAME OEM2ANSI DESCRIPTION 'Приложение OEM2ANSI, (C) 1994, Frolov A.V.' EXETYPE windows STUB 'winstub.exe' STACKSIZE 5120 HEAPSIZE 1024 CODE preload moveable discardable DATA preload moveable multiple
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий