Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

Видеокурс программиста и крэкера 5D 2O17
(актуальность: декабрь 2O17)
Свежие инструменты, новые видеоуроки!

  • 400+ видеоуроков
  • 800 инструментов
  • 100+ свежих книг и статей

УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



Перекодировка текста DOS-Windows-Koi8


Подходит компьютерщик (К) к газетному киоску и спрашивает у продавца (П):
К: - Есть ли у вас свежий номер 'Компьютерного обозрения'?
П: - Есть.
К: - Ну тогда, пожалуйста, один номер в кодировке KOI8-R


 procedure WinToDos;
 var
   Src, Str: PChar;
 begin
   Src := Memo1.Lines.GetText; //Берем текст из TMemo как тип PChar
   CharToOem(Src, Str); //API функция для перевода текста
   Memo2.Lines.Text := StrPas(Str);//Записываем назад
 end;
 
 procedure DosToWin;
 var
   Src, Str: PChar;
 begin
   Src := Memo1.Lines.GetText; //Берем текст из TMemo как тип PChar
   OemToChar(Src, Str); //API функция для перевода текста
   Memo2.Lines.Text := StrPas(Str);//Записываем назад
 end;
 
 var
   koi8toalt : array [0..127] of char = (
   CHR($c4), Chr($b3), Chr($da), Chr($bf),
   Chr($c0), Chr($d9), Chr($c3), Chr($b4),
   Chr($c2), Chr($c1), Chr($c5), Chr($df),
   Chr($dc), Chr($db), Chr($dd), Chr($de),
   Chr($b0), Chr($b1), Chr($b2), Chr($f4),
   Chr($fe), Chr($f9), Chr($fb), Chr($f7),
   Chr($f3), Chr($f2), Chr($ff), Chr($f5),
   Chr($f8), Chr($fd), Chr($fa), Chr($f6),
   Chr($cd), Chr($ba), Chr($d5), Chr($f1),
   Chr($d6), Chr($c9), Chr($b8), Chr($b7),
   Chr($bb), Chr($d4), Chr($d3), Chr($c8),
   Chr($be), Chr($bd), Chr($bc), Chr($c6),
   Chr($c7), Chr($cc), Chr($b5), Chr($f0),
   Chr($b6), Chr($b9), Chr($d1), Chr($d2),
   Chr($cb), Chr($cf), Chr($d0), Chr($ca),
   Chr($d8), Chr($d7), Chr($ce), Chr($fc),
   Chr($ee), Chr($a0), Chr($a1), Chr($e6),
   Chr($a4), Chr($a5), Chr($e4), Chr($a3),
   Chr($e5), Chr($a8), Chr($a9), Chr($aa),
   Chr($ab), Chr($ac), Chr($ad), Chr($ae),
   Chr($af), Chr($ef), Chr($e0), Chr($e1),
   Chr($e2), Chr($e3), Chr($a6), Chr($a2),
   Chr($ec), Chr($eb), Chr($a7), Chr($e8),
   Chr($ed), Chr($e9), Chr($e7), Chr($ea),
   Chr($9e), Chr($80), Chr($81), Chr($96),
   Chr($84), Chr($85), Chr($94), Chr($83),
   Chr($95), Chr($88), Chr($89), Chr($8a),
   Chr($8b), Chr($8c), Chr($8d), Chr($8e),
   Chr($8f), Chr($9f), Chr($90), Chr($91),
   Chr($92), Chr($93), Chr($86), Chr($82),
   Chr($9c), Chr($9b), Chr($87), Chr($98),
   Chr($9d), Chr($99), Chr($97), Chr($9a));
 
 function Koi8toWin(const Data: PChar; DataLen: Integer): PChar;
 var
   PCh: PChar;
   i: Integer;
 begin
   PCh := Data;
   for i := 1 to DataLen do
   begin
     if Ord(Pch^) > 127 then
       Pch^ := koi8toalt[Ord(Pch^) - 128];
     Inc(PCh);
   end;
   PCh := Data;
   OemToCharBuff(PCh, PCh, DWORD(DataLen));
   Result := Data;
 end;
 




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS