Форум программистов, компьютерный форум, киберфорум
Наши страницы

Конвертация кодировки DOS в Win - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как наапгрейдить стандартные диалоги? http://www.cyberforum.ru/cpp-beginners/thread470938.html
Как наапгрейдить стандартное диалоговое окно 'открыть/сохранить'? Я нашёл файл с шаблонами и включил их в свои ресурсы. Там шаблоны с идентификаторами 1536, 1537, 1547, 1548. Первые два - в дизайне...
C++ Табличное отображение данных перерисовка окна Задача такая отображаю данные из БД в табличной форме (элемент управления на базе ClistCtrl со стилем Owner Draw и соответственно переопределена функция DrawItem). Возникает следующая проблема,... http://www.cyberforum.ru/cpp-beginners/thread470936.html
Ошибка: BuildCommDCB('baud=9600 parity=N data=8 stop=1', &dcb ); C++
Хелп! С happytown.ru скачал доку про компорт, вродебы все понятно, но не работает у меня! Выдает ошибку при выполнении BuildCommDCB('baud=9600 parity=N data=8 stop=1', &dcb ); гдето в...
Нужен элемент управления - таблица C++
Посоветуйте элемент управления в виде таблицы (нужно для базы данных). Обязательно требуется: возможность редактирования каждой ячейки по месту, прокрутка, изменение ширины столбцов. Желательно:...
C++ Восьмибитный тип переменной (что за тип, но не BYTE и не CHAR? http://www.cyberforum.ru/cpp-beginners/thread470907.html
Вроде давно занимаюсь программированием на С++, но встала проблема... Есть некий массив переменных имеющих 8 битный размер... без знака причём! Есть необходимость конвертации этих переменных в...
C++ Исходники Ping'a Hi Kto pomojet najti source-i ping a ? ili objasnit kak mojno pisat spasibo подробнее

Показать сообщение отдельно
Adil
15.10.2008, 17:08
//------------------------------------------------
unsigned char* Decode_Win_to_DOS(unsigned char * str)
{
unsigned char ch;
short i=0;
do
{
ch=str[i];
if(ch>=128)
{
if(ch>=192&&ch<=239)
{
ch-=(unsigned char)192;
ch+=(unsigned char)128;
}
else if(ch>=240)
{
ch-=(unsigned char)240;
ch+=(unsigned char)224;
}
else if(ch==(unsigned char )'№')
ch=252;
else
ch=32;
str[i]=ch;
}
i++;
}while(ch!=0);
return str;
}
//---------------------------------------------------
unsigned char* Decode_DOS_to_Win(unsigned char * str)
{
unsigned char ch;
short i=0;
do
{
ch=str[i];
if(ch>=128)
{
if(ch<=175)
{
ch-=(unsigned char)128;
ch+=(unsigned char)192;
}
else if(ch>=224&&ch<=239)
{
ch-=(unsigned char)224;
ch+=(unsigned char)240;
}
else if(ch==252)
ch='№'
else
ch=32;
str[i]=ch;
}
i++;
}while(ch!=0);
return str;
}
//-----------------------------------------------------------
Может в этих функциях можно что и изменить в лучшую сторону - давно писаны, но руки не доходят, работают - и ладно...
Удачи.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru