Страница 1 из 2

Кодировка из Dos в Win

Добавлено: 24 янв 2007, 14:18
Dr_Grizzly
Привет всем! Опять трабла! Выгружаю файл из программы Амба, загружаю в прогу и вижу иероглифы, ладна думаю, дай ка поменяю шрифт, меняю на Terminal и я вижу текст, но тут опять проблема! Принера отказываются печатать такую фигню! Что делать? Как такую хрень перекодировать???

Re: Кодировка из Dos в Win

Добавлено: 24 янв 2007, 14:51
Хыиуду
Любым текстовым редактором, понимающим разные кодировки. Я, например, использую Aditor. А в принципе это и Word может сделать.

Re: Кодировка из Dos в Win

Добавлено: 24 янв 2007, 14:52
somewhere
Если файл текстовый, то в Total Commander 6.53 есть AddOn редактор Akelpad, выглядит как обычный блокнот, но возможностей гораздо больше.
Ну а если нет, то можно и простенькую утилу написать для конвертации

Re: Кодировка из Dos в Win

Добавлено: 24 янв 2007, 16:19
Хыиуду
Кстати, если этот Akel напечатать при включенной русской раскладке, получится Флуд. Не знаю, то ли случайность, то ли шутка автора

Re: Кодировка из Dos в Win

Добавлено: 24 янв 2007, 16:26
Blood_Magic
Ну это простой вопросик, если файлик текстовый и ты его сам открываешь и загружаешь себе в прогу, просто прогоняй текстовою строку через функци. EOMToWin или обратно WinToEOM, а шрифт оставь обычный типа Times New Roman или курьер, когоче любой виндовсовский

Re: Кодировка из Dos в Win

Добавлено: 25 янв 2007, 06:10
Dr_Grizzly
EOMToWin - что за функция такая? У меня такое дельфа не знает, дажо в справочнике нетю.

Парни, про текстовые редакторы я вкурсе, но мне нужно именно в проге осуществить конвертирование

Re: Кодировка из Dos в Win

Добавлено: 25 янв 2007, 09:51
Хыиуду
Можно банально сделать массив замен: в цикле от 0 до 255 вывести i-й символ, сделать это в Дельфи (получится таблица для кодировки Win-1251) и в Паскале (будет OEM-кодировка). А потом собрать это все в два массива и через них все декодить.

Re: Кодировка из Dos в Win

Добавлено: 25 янв 2007, 11:55
Absurd
Хыиуду писал(а):Можно банально сделать массив замен: в цикле от 0 до 255 вывести i-й символ, сделать это в Дельфи (получится таблица для кодировки Win-1251) и в Паскале (будет OEM-кодировка). А потом собрать это все в два массива и через них все декодить.
Нафига делать тысячу раз одно и тоже? Почему бы не сделать это с помощью MultiByteToWideChar(866, ....) а потом WideCharToMultiByte(1251, ....). Вроде в Win и KOI8 есть, но мне влом проверить.

Re: Кодировка из Dos в Win

Добавлено: 25 янв 2007, 11:58
Blood_Magic
Dr_Grizzly писал(а):EOMToWin - что за функция такая? У меня такое дельфа не знает, дажо в справочнике нетю.

Парни, про текстовые редакторы я вкурсе, но мне нужно именно в проге осуществить конвертирование
ошибся, попробуй
AnsiToOem и OemToAnsi

Re: Кодировка из Dos в Win

Добавлено: 06 дек 2007, 07:30
Dr_Grizzly
Какие должны быть парамерты у функции AnsiToOem(PChar,PChar)?? Вот что нашел в справке
CharToOem(

LPCTSTR lpszSrc, // pointer to string to translate
LPSTR lpszDst // pointer to translated string
);


Parameters

lpszSrc

Pointer to the null-terminated string to translate.

lpszDst

Pointer to the buffer for the translated string. If the CharToOem function is being used as an ANSI function, the string can be translated in place by setting the lpszDst parameter to the same address as the lpszSrc parameter. This cannot be done if CharToOem is being used as a wide-character function.

Но так и не понял, что куда, переменная lpszSrc подразумевает сам символ в Dos-кодировке, а вторая переменная чего хочет??? Киньте примерчик плиз...