Показать сообщение отдельно
Старый 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).