AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 13.07.2006, 10:34   #1  
MikeR ist offline
MikeR
MCT
Benutzerbild von MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1.628 / 627 (24) +++++++
Registriert seit: 28.11.2005
Ort: просто землянин
Выгрузка в dbf с перекодировкой
Собственно сабж. Написал выгрузку в dbf. Проблем нет. Но при импорте в ЕГАИС не поддерживается кодировка DOS. Написал перекодировку из DOS в Windows и вот тут внимание самое интересное. Нижний регистр перекодируется без проблем это символы "абвгдежзикл..." а вот с верхним регистром проблемы "АБВГДЕЖЗ...". Коды верхнего регистра в ASCI отсутствуют полностью, только можно найти жалкие остатки типа 134 - Е, 135 - Ш, 153 - Т. Собственно недостоющие можно добыть из латиницы, но как быть с "Я, Ж.."?
Alt 13.07.2006, 11:00   #2  
diessever ist offline
diessever
Участник
 
19 / 11 (1) +
Registriert seit: 27.11.2002
Ort: г.Пенза
Могу предположить что при выгрузке вы используете драйвер dBase, если заменить драйвер на FoxPrо-шный то выгрузка будет в кодировке WIN и ничего перекодировать собственно не нужно. Поищите VFPODBC и установите если отсутствует.
Alt 13.07.2006, 11:00   #3  
Ruff ist offline
Ruff
Дмитрий Ерин
Benutzerbild von Ruff
1C
 
475 / 396 (14) ++++++
Registriert seit: 18.09.2003
Ort: Тула
Zitat:
Zitat von MikeR
Коды верхнего регистра в ASCI отсутствуют полностью, только можно найти жалкие остатки типа 134 - Е, 135 - Ш, 153 - Т.
Что-то Вы явно путаете... И в ANSI и в OEM кодировках русский алфавит представлен полностью. Для конвертации Win -> DOS в Аксапте можно использовать метод:
WinApi::CharToOemBuff(_text)

Обратного, к сожалению, нет, но его несложно создать по аналогии.
__________________
Alt 13.07.2006, 11:07   #4  
MikeR ist offline
MikeR
MCT
Benutzerbild von MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1.628 / 627 (24) +++++++
Registriert seit: 28.11.2005
Ort: просто землянин
Спасибо уже ознакомился с предложением о написании WinApi::OemToChar(_text), но только где взять библиотеку? Перебором подобрать не получилось.
Ruff тогда опубликуйте коды и все навсего.
Alt 13.07.2006, 11:10   #5  
MikeR ist offline
MikeR
MCT
Benutzerbild von MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1.628 / 627 (24) +++++++
Registriert seit: 28.11.2005
Ort: просто землянин
Вот предлагаю ознакомится с существующими http://www.tspu.edu.ru/ebooks/stakhin/2.3.htm
далее с 240 по 262 идет нижний регистр между ними куча мне не нужных символов. А коды верхнего я уже опубликовал
Alt 13.07.2006, 11:16   #6  
sukhanchik ist offline
sukhanchik
Administrator
Benutzerbild von sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3.343 / 3563 (125) ++++++++++
Registriert seit: 13.06.2004
Ort: Москва
Оно?
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);
}
2Ruff: Где-где ваш метод? Чего-то не нашел или не там искал? (Ax 3.0 SP3 CU1)
Все, нашел dis слой, с комментариями от valu, класс WinApi
__________________
Возможно сделать все. Вопрос времени

Geändert von sukhanchik (13.07.2006 um 11:20 Uhr)
Alt 13.07.2006, 11:33   #7  
MikeR ist offline
MikeR
MCT
Benutzerbild von MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1.628 / 627 (24) +++++++
Registriert seit: 28.11.2005
Ort: просто землянин
Thanks sukhanchik, но получается при переводе WinApi:emToChar("АБВГДЕЖЗИЙКЛМНОПРСТ")
в 6L+T+-+ііLЈіTі=+ііTT
Хотя интересный подход не додумался бы "OemToCharA" имеется в виду последняя А
Alt 13.07.2006, 12:32   #8  
MikeR ist offline
MikeR
MCT
Benutzerbild von MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1.628 / 627 (24) +++++++
Registriert seit: 28.11.2005
Ort: просто землянин
Совет будущим поколениям
Дело оказалось в следующем
Класс, формирующий файл dbf перекодировал из Windows в Dos, уже потом перекодировать без потерь не получится
Alt 14.07.2006, 10:15   #9  
Ruff ist offline
Ruff
Дмитрий Ерин
Benutzerbild von Ruff
1C
 
475 / 396 (14) ++++++
Registriert seit: 18.09.2003
Ort: Тула
Zitat:
Zitat von MikeR
Ruff тогда опубликуйте коды и все навсего.
Вот, пожалуйста - OEM для 866 (русской) кодовой страницы:
http://ascii.org.ru/
Верхний регистр идет с кода 128 по код 159 непрерывно. Нижний прерывается на псевдографику...
Zitat:
Zitat von MikeR
...далее с 240 по 262 идет нижний регистр...
Если мы говорим об одном и том же (о кодах ASCII), то они однобайтовые, то есть 255 максимум. Откуда 262?

Geändert von Ruff (14.07.2006 um 10:23 Uhr)
Stichworte
ascii, dbf, dos, кодировка, таблица символов

 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Выгрузка из ODBC naf DAX: Программирование 9 25.12.2008 19:07
Выгрузка числовых данных в dbf файл kenzo DAX: Программирование 2 12.04.2006 16:01
почти DBF Gorlum DAX: Программирование 3 17.03.2006 12:52
И опять DBF.... edd DAX: Программирование 20 17.02.2003 13:18
Достать данные из DBF в форму edd DAX: Программирование 29 06.02.2003 21:01

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 02:33 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.