|
|
#1 |
|
MCT
|
Выгрузка в dbf с перекодировкой
Собственно сабж. Написал выгрузку в dbf. Проблем нет. Но при импорте в ЕГАИС не поддерживается кодировка DOS. Написал перекодировку из DOS в Windows и вот тут внимание самое интересное. Нижний регистр перекодируется без проблем это символы "абвгдежзикл..." а вот с верхним регистром проблемы "АБВГДЕЖЗ...". Коды верхнего регистра в ASCI отсутствуют полностью, только можно найти жалкие остатки типа 134 - Е, 135 - Ш, 153 - Т. Собственно недостоющие можно добыть из латиницы, но как быть с "Я, Ж.."?
|
|
|
|
|
#2 |
|
Участник
|
Могу предположить что при выгрузке вы используете драйвер dBase, если заменить драйвер на FoxPrо-шный то выгрузка будет в кодировке WIN и ничего перекодировать собственно не нужно. Поищите VFPODBC и установите если отсутствует.
|
|
|
|
|
#3 |
|
Дмитрий Ерин
|
Цитата:
Сообщение от MikeR
Коды верхнего регистра в ASCI отсутствуют полностью, только можно найти жалкие остатки типа 134 - Е, 135 - Ш, 153 - Т.
WinApi::CharToOemBuff(_text) Обратного, к сожалению, нет, но его несложно создать по аналогии.
__________________
|
|
|
|
|
#4 |
|
MCT
|
Спасибо уже ознакомился с предложением о написании WinApi::OemToChar(_text), но только где взять библиотеку? Перебором подобрать не получилось.
Ruff тогда опубликуйте коды и все навсего. |
|
|
|
|
#5 |
|
MCT
|
Вот предлагаю ознакомится с существующими http://www.tspu.edu.ru/ebooks/stakhin/2.3.htm
далее с 240 по 262 идет нижний регистр между ними куча мне не нужных символов. А коды верхнего я уже опубликовал
|
|
|
|
|
#6 |
|
Administrator
|
Оно?
X++: static str oemToChar(str _text) { DLL dll = new DLL("user32.dll"); DLLFunction dllFunction = new DLLFunction(dll, "OemToCharA"); Binary result = new Binary(strlen(_text) + 1); ; dllFunction.returns(ExtTypes::DWord); dllFunction.arg(ExtTypes::String, ExtTypes::Pointer); dllFunction.call(_text, result); return result.string(0); } или не там искал? (Ax 3.0 SP3 CU1)Все, нашел dis слой, с комментариями от valu, класс WinApi
__________________
Возможно сделать все. Вопрос времени Последний раз редактировалось sukhanchik; 13.07.2006 в 11:20. |
|
|
|
|
#7 |
|
MCT
|
Thanks sukhanchik, но получается при переводе WinApi:
emToChar("АБВГДЕЖЗИЙКЛМНОПРСТ")в 6L+T+-+ііLЈіTі=+ііTT Хотя интересный подход не додумался бы "OemToCharA" имеется в виду последняя А
|
|
|
|
|
#8 |
|
MCT
|
Совет будущим поколениям
Дело оказалось в следующем
Класс, формирующий файл dbf перекодировал из Windows в Dos, уже потом перекодировать без потерь не получится
|
|
|
|
|
#9 |
|
Дмитрий Ерин
|
Цитата:
Сообщение от MikeR
Ruff тогда опубликуйте коды и все навсего.
http://ascii.org.ru/ Верхний регистр идет с кода 128 по код 159 непрерывно. Нижний прерывается на псевдографику... Цитата:
Сообщение от MikeR
...далее с 240 по 262 идет нижний регистр...
Последний раз редактировалось Ruff; 14.07.2006 в 10:23. |
|
|
| Теги |
| ascii, dbf, dos, кодировка, таблица символов |
|
|
Похожие темы
|
||||
| Тема | Ответов | |||
| Выгрузка из ODBC | 9 | |||
| Выгрузка числовых данных в dbf файл | 2 | |||
| почти DBF | 3 | |||
| И опять DBF.... | 20 | |||
| Достать данные из DBF в форму | 29 | |||
|