|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Конвертирование руского текста из MS-DOSа.. |
|
Конвертирование руского текста из MS-DOSа..
|
TVladimir
Сообщения: n/a |
При чтении руской строки текста из файла, созданного в МС-ДОСе, в буффере одни иероглифы.
Я понимаю, что кодировка не совпадает, необходимо конвертировать. Но как...???? |
|
Отправлено: 17:11, 30-08-2004 |
Сообщения: 196
|
Профиль | Сайт | Отправить PM | Цитировать 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; PS: Взято из фака, атор неизвестен. |
Отправлено: 20:48, 30-08-2004 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать Kuper
Немного Вы всё усложняете. Хотя многие программисты этим страдают. Имхо, сейчас писать конвертеры не стоит (хотя я сам уже 3 написал ) TVladimir Посмотрите в сторону OemToChar. Вообще при написании программы следует обратить внимание, будет ли она "консольной", под какими ОС её планируется выполнять и даже в каком редакторе (среде разработки) пишутся исходники. |
Отправлено: 09:48, 31-08-2004 | #3 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - Конвертирование FAT32<->NTFS | Microsoft Windows 2000/XP | 65 | 07-03-2010 11:47 | ||
Конвертирование MKV | Den47 | Видео и аудио: обработка и кодирование | 2 | 29-06-2008 22:54 | |
Теория - Конвертирование xls в jpg | Surround | Программирование и базы данных | 13 | 27-01-2008 17:50 | |
Печать из DOSа на USB-принтер | Kudryavcev Dmitry | Microsoft Windows 95/98/Me (архив) | 9 | 08-05-2007 10:57 | |
загрузка windows NT из-под DOSа | slono | Microsoft Windows NT/2000/2003 | 13 | 10-03-2005 20:08 |
|