|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.10.2009, 13:15 | #1 |
Новичок
Джуниор
Регистрация: 19.10.2009
Сообщений: 5
|
Перекодировка символьной строки из DOS -> Windows
Привет уважаемым программистам. Есть у меня к вам небольшой вопрос. После хорошо проведённого лета, знаний об ассемблере осталось совсем да ничего, а заниматься дальше надо. Так вот. Передо мной встала задача, перекодировать символьную строку из DOS кодировки в кодировку Windows. Хотелось бы чтобы вы подсказали ЧТО конкретно прочитать чтобы это сделать. (как я понимаю алгоритм такой: Забиваем строку в массив. Далее в цикле (длинною равной числу символов в строке) берём символ и прибавляем к нему какое то значение, чтобы символ из одной кодировки переместить в другую (слышал вроде что то о 30h и команде xlat, но могу и ошибаться). Так поступаем с каждым символом в строке. И в итоге, как результат, видим перекодированные символы в исходном массиве.) В общем как это грамотно реализовать мыслей нет. Очень надеюсь на вашу помощь! Заодно наверное и вспомню как это делается
|
19.10.2009, 13:31 | #2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Типа такого: Код:
I'm learning to live...
|
|
19.10.2009, 13:38 | #3 |
Новичок
Джуниор
Регистрация: 19.10.2009
Сообщений: 5
|
Боюсь использование WinAPI преподаватель не оценит. Скорее сочтёт за "стыреннное с интернетов" =(
|
19.10.2009, 14:18 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Все мы тырим из инета, и даже он.
I'm learning to live...
|
19.10.2009, 14:48 | #5 |
Новичок
Джуниор
Регистрация: 19.10.2009
Сообщений: 5
|
Ребята, наверняка кто то знает ответ на мой "больной" вопрос. Подскажите хотя бы где искать! =)
|
19.10.2009, 16:56 | #7 |
Новичок
Джуниор
Регистрация: 19.10.2009
Сообщений: 5
|
|
19.10.2009, 20:05 | #8 |
equ asm
Участник клуба
Регистрация: 02.05.2009
Сообщений: 1,605
|
Открываете перед собой таблицы и смотрите как соответствуют друг другу русские символы(латинские совпадают).
Составляете табличку для перекодирования в которой в 81h элементе ('Б' в cp866) находится число 0С1h ('Б' в cp1251) и остальные буквы по аналогии. Далее смотрите действие команды xlat. Либо ищите разности в кодах букв и реализуете вычисления для перевода, напр 0С1h - 81h = 40h, значит, для того чтобы перевести символ 'Б' из дос кодировки в вин, нужно прибавить к коду 40h. Ну вот как-то так. |
19.10.2009, 21:49 | #9 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
мне кажется через таблицы это будет и проще и нагляднее... впрочем. вот алгоритм на Паскале для преобразования из DOS (OEM) в Windows (ANSI, она же Win1251): Код:
ps. а лично я, если бы передо мной стояла такая задача, всё таки сделал бы через таблички.. |
|
19.10.2009, 23:32 | #10 |
Новичок
Джуниор
Регистрация: 19.10.2009
Сообщений: 5
|
Serge_Bliznykov Паскаль понятен, асм не понятен =(
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перекодировка текста DOS-Windows | natasha | Общие вопросы Delphi | 4 | 19.10.2009 14:14 |
Из заданной символьной строки, выбрать те символы, которые встречаются в ней только один раз... | Banny | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 19.12.2008 06:15 |
Команды MS-DOS (точнее командной строки windows) | kiraM | Windows | 4 | 03.09.2008 22:11 |
Как найти уникальное число для символьной строки? | Paul Hindenburg | Общие вопросы Delphi | 13 | 14.02.2008 10:00 |