Форум » [x]Harbour » CODEPAGE » Ответить

CODEPAGE

spair2k: Хочу переходить с xHarbour на Harbour из последних сборок, но столкнулся с тем, что некоторый код не могу перевести, поскольку не пойму, как подключить кириллическую кодовую страницу. Конструкция: [pre2] REQUEST HB_CODEPAGE_RU866 hb_setCodePage('RU866')[/pre2] не работает... подскажите пожалуйста...

Ответов - 49, стр: 1 2 3 All

Andrey: Dima пишет: На выходе получим TEST.TXT Вспомнил, примеры в Клипере 5.3 были такие...

Oskar_AAA: С наступающим Новым Годом! Здоровья и всех благ... Программа на xHarbour Compiler build 1.2.1 (SimpLex) (Rev. 6476) Требуется обработать файлы, имена которых в кириллице, функция FILE() возвращает .F., работает ли FILE() с кириллицей в имени файла? Переименовать файлы нет возможности.... Пробовал функцией SETFILEAPIS() - имена на экран вышли в кириллице... Что делать дальше???

Oskar_AAA: Спасибо, доработал блок формирования имени файла, FILE() возвращает .T. с кириллицей в имени файла...


alkresin: И вас с наступающим! Не знаю, как в xHarbour, а в Harbour File() правильно отрабатывает, если REQUEST HB_CODEPAGE_..., hb_setCodePage(...) указывают на ту кодовую страницу, в которой написана программа. Попробуйте разные варианты, включая изменение кодовой страницы текста программы.

Oskar_AAA: Добрый день, EXCEL2010 открывает файл, имя которого содержит кириллицу и пробелы, а EXCEL2016 падает Excel.Application:WORKBOOKS/14 DISP_E_BADPARAMCOUNT: OPEN открываю с помощью WorkBooks:Open() Решил проблему по схеме: - копирую файл с кириллицей и пробелами в имени в рабочий каталог с фиксированным именем (например TEMP_EXCEL) - открываю Excel (2010/2016) TEMP_EXCEL - обработка - удаление TEMP_EXCEL

Haz: Oskar_AAA пишет: DISP_E_BADPARAMCOUNT Скорее что-то не так в пути к файлу раз простое копирование решает проблему. Тоже открываю кириллицу и пробелы экселями 07—16 и все нормально.

Pasha: Для неуникодных программ (а xharbour именно такой) существенной является кодировка, в которой представлено имя файла. Если сделан вызов SetFileApis (которая вызывает SetFileApisToOEM()), то windows работает с именами в кодировке OEM, т.е. cp866. Для excel же надо обязательно передавать имя документа в кодировке cp1251. Хотя все равно непонятно различное поведение разных версий excel.

Oskar_AAA: С наступающим Новым Годом, друзья. Вот и я хочу понять "Кто is Who?" Excel2010 без проблем открывает, а 2016 выносит мозги... Пока оставил по схеме см.пост выше, но интерес остался, для кругозора...

Oskar_AAA: + файл источник копируется в файл TEMP_EXCEL.xls в том же каталоге, что файл источник.... Так, что в пути к файлу ничего не меняется... фрагмент кода: Lsmet_File3=Mar5+Alltrim(Name_Lsmet3)+'.XLS' ?Lsmet_File3,File(Lsmet_File3) wait If File(Lsmet_File3)==.T. cFileXls_Exl:=Mar5+'BALABA.XLS' Copy File &Lsmet_File3 To &cFileXls_Exl oExcel_S :=ToleAuto():New("Excel.Application") oExcel_S :Workbooks:Open(cFileXls_Exl) oExcel_S :Set("DisplayAlerts",.F.) oExcel_S :Visible :=.F. oBook_S :=oExcel_S:ActiveWorkBook oAs_S :=oExcel_S:ActiveSheet() oRange_S :=oExcel_S:ActiveCell:SpecialCells(xlLastCell) cRecno_S :=oRange_S:Row cColumn_S :=oRange_S:Column ......



полная версия страницы