|
|
#1 |
|
MCT
|
Выгрузка в dbf с перекодировкой
Собственно сабж. Написал выгрузку в dbf. Проблем нет. Но при импорте в ЕГАИС не поддерживается кодировка DOS. Написал перекодировку из DOS в Windows и вот тут внимание самое интересное. Нижний регистр перекодируется без проблем это символы "абвгдежзикл..." а вот с верхним регистром проблемы "АБВГДЕЖЗ...". Коды верхнего регистра в ASCI отсутствуют полностью, только можно найти жалкие остатки типа 134 - Е, 135 - Ш, 153 - Т. Собственно недостоющие можно добыть из латиницы, но как быть с "Я, Ж.."?
|
|
|
|
|
#2 |
|
Участник
|
Могу предположить что при выгрузке вы используете драйвер dBase, если заменить драйвер на FoxPrо-шный то выгрузка будет в кодировке WIN и ничего перекодировать собственно не нужно. Поищите VFPODBC и установите если отсутствует.
|
|
|
|
|
#3 |
|
Дмитрий Ерин
|
Zitat:
Zitat von 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
__________________
Возможно сделать все. Вопрос времени Geändert von sukhanchik (13.07.2006 um 11:20 Uhr) |
|
|
|
|
#7 |
|
MCT
|
Thanks sukhanchik, но получается при переводе WinApi:
emToChar("АБВГДЕЖЗИЙКЛМНОПРСТ")в 6L+T+-+ііLЈіTі=+ііTT Хотя интересный подход не додумался бы "OemToCharA" имеется в виду последняя А
|
|
|
|
|
#8 |
|
MCT
|
Совет будущим поколениям
Дело оказалось в следующем
Класс, формирующий файл dbf перекодировал из Windows в Dos, уже потом перекодировать без потерь не получится
|
|
|
|
|
#9 |
|
Дмитрий Ерин
|
Zitat:
Zitat von MikeR
Ruff тогда опубликуйте коды и все навсего.
http://ascii.org.ru/ Верхний регистр идет с кода 128 по код 159 непрерывно. Нижний прерывается на псевдографику... Zitat:
Zitat von MikeR
...далее с 240 по 262 идет нижний регистр...
Geändert von Ruff (14.07.2006 um 10:23 Uhr) |
|
|
| Stichworte |
| ascii, dbf, dos, кодировка, таблица символов |
|
|
Ähnliche Themen
|
||||
| Thema | Antworten | |||
| Выгрузка из ODBC | 9 | |||
| Выгрузка числовых данных в dbf файл | 2 | |||
| почти DBF | 3 | |||
| И опять DBF.... | 20 | |||
| Достать данные из DBF в форму | 29 | |||
|