AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.10.2004, 19:55   #1  
BALU is offline
BALU
Участник
 
2 / 10 (1) +
Регистрация: 22.10.2004
! ANSI to ASCII for C++
Доброго дня, ...вечера,...ночи.
All, помогте плз. Каким образщм, по средствам C++, переконвертить WIN в DOS кодировку !?
Старый 23.10.2004, 10:34   #2  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Рекомендую добавить в Global следующий код:
PHP код:
static str Char2OEM(str _strSource)
{
    return 
WinApi::CharToOemBuff(_strSource);

Или непосредственно пользуйтесь WinApi::CharToOemBuff
Обратное преобразование - чуть сложнее, через dll
PHP код:
static str OEM2Char(str _strSource)
{
    
DLL         winApiDLL = new DLL('USER32');
    
DLLFunction OEMToChar = new DLLFunction(winApiDLL'OemToCharA');
    
Binary      bSource   = new Binary(_strSource);
    
str         oemstr;
    ;

    
OEMToChar.returns(ExtTypes::DWORD);
    
OEMToChar.arg(ExtTypes::POINTERExtTypes::POINTER);
    
OEMToChar.call(bSourcebSource);
    
oemstr bSource.string(0);

    return 
oemstr;

Хотя, можно и самому :) Что-нибудь типа:
PHP код:
//OEM to ANSI
for(z=0;z<nCount-2;z++)
{
    if(
szBuf[z]>127&&szBuf[z]<176)szBuf[z]=szBuf[z]+64;
    else if(
szBuf[z]>223&&szBuf[z]<240)szBuf[z]=szBuf[z]+16;

С Уважением,
Георгий.
За это сообщение автора поблагодарили: Damn (2), Мариночка (1).
Старый 23.10.2004, 11:00   #3  
Miktel is offline
Miktel
Участник
 
17 / 10 (1) +
Регистрация: 13.07.2004
Адрес: Дома
Str 500 convertWinToDos(Str 500 _winStr)
{
Int strLength;
Int i;
str 500 dosString;
Int charCode;

;

// info("paramStr = " + _winStr);
strLength = strLen(_winStr);
// info("length = " + int2str(strLength));
dosString = "";
for (i=1;i<=strLength;i++)
{
charCode = char2Num(subStr(_winStr,i,1),1);
info(int2str(i)+ " - ый символ строки " + subStr(_winStr,i,1) + " его код = " + int2str(charCode));
if (charCode >= 192 && charCode <= 223)
{
dosString = dosString + num2Char(128 + charCode - 192);
continue;

}
// в DOS - ой кодировке между символами "п" и "р" другие символы (код "п"=175, а код "р"=224)
if (charCode >= 224 && charCode <= 239) //симолы от "а" до "п"
{
dosString = dosString + num2Char(160 + charCode - 224);
continue;
}
if (charCode >= 240 && charCode <= 255) //симолы от "р" до "я"
{
dosString = dosString + num2Char(224 + charCode - 240);
continue;
}

if (charCode == 184) // символ "ё"
{
dosString += num2Char(241);
continue;
}
if (charcode == 168) // символ "Ё"
{
dosString += num2Char(240);
continue;
}
if (charCode == 185) // символ "№"
{
// заменяем символ "№" (номер) на N
// так как символа № (номер) нет в DOS - ой раскладке
dosString += num2Char(78);
continue;
}
dosString += subStr(_winStr,i,1);
// у других симолов коды в обеих раскладках одинаковые
//(например, у Латинских букв, символов ,.?/*-+=(){}[]'"!@#$^^; и т.д.)
}
return dosString;
}

Вызывай этот метод для конвертации. Удачи!
Старый 24.10.2004, 10:32   #4  
BALU is offline
BALU
Участник
 
2 / 10 (1) +
Регистрация: 22.10.2004
Доброго дня, ...вечера,...ночи.
Огромнейшее спасибо за ценную информацию !!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
ASCII NULL offenmeier DAX: Программирование 4 28.01.2009 08:12
Экспорт / сохранение отчета в ASCII файл valentino DAX: Программирование 7 18.02.2008 11:57
Формат файла ASCII Mila DAX: Программирование 0 15.02.2008 13:17

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:30.