Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/34: Рейтинг темы: голосов - 34, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 29.05.2017
Сообщений: 8
1

866-MS-DOS to 1251-MS-Windows

29.05.2017, 19:29. Показов 7030. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
"Программа предназначена для перекодировки текстовых файлов из формата кодовой таблицы 866-MS-DOS в формат кодовой таблицы 1251-MS-Windows и наоборот. Пользователь сам выбирает текстовый файл и направление перекодировки."

Уважаемые обитатели форума, прошу объяснить в общих чертах, как это сделать. Совсем ничего на ум не приходит.
Извините.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.05.2017, 19:29
Ответы с готовыми решениями:

Драйвер перекодировки символов в тексте таблицы win-1251 в dos-866
Вот есть тз : Legasy драйвер для ОС win NT. входной и выходной текст передается х драйвера с помощью ioctl запроса от управляющей...

Перекодировка из OEM-866 в Windows-1251
написан батник, результат каждой команды он выводит в лог так: 1>>%~dp0\log.txt 2>>&1 понятно после завершения батника в этом логе...

Как получить windows-1251 строку из DOS строки
Всем привет! Моё приложение содержит строку вида C:\Progra~1\... и далее есть имена папок с кириллицей Как мне получить весь путь в...

3
Диссидент
Эксперт C
 Аватар для Байт
27710 / 17328 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
29.05.2017, 19:48 2
OemToAnsi и AnsiToOem

Добавлено через 3 минуты
Но можно и так
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
char *K866to1251(char *p)
{ char c, *q=p;
   if (p==NULL) return NULL;
   while((c=*p)!='\0') {
     if      (c>=128 && c<176) c+=64;
     else if (c>=224 && c<240) c+=16;
     *p = c;
     p++;
   }
   return q;
}
// *******************
char *K1251to866(char *p)
{ char c, *q = p;
   while((c=*p)!='\0') {
     if (c>=192 && c<240) c-=64;
     else if (c>=240) c-=16;
     else if (c==184) c = 'е';
     *p = c;
     p++;
   }
   return q;
}
// ******************
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
29.05.2017, 22:16 3
Давным-давно писал программу-перекодировщик. В ней интересны только таблицы перекодировки, возможно, кому-то пригодятся. Значение ВХодного символа является индексом в таблицу, ВЫХодным значением является элемент таблицы по данному индексу. Почему-то в своё время поступил по-дебильному и написал таблицу в виде строки. В этом в общем-то нет ничего плохого, но в таком виде текст программы в некоторых редакторах может исковеркаться. Кому не лень могут таблицу перевести в человеческий вид (т.е. описать в виде цифр), который таким дефектом не страдает
Вложения
Тип файла: zip convert.c.zip (546 байт, 61 просмотров)
0
Диссидент
Эксперт C
 Аватар для Байт
27710 / 17328 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
29.05.2017, 23:55 4
Цитата Сообщение от Evg Посмотреть сообщение
таблицы перекодировки,
Да, этими путями все мы хаживали. Но на мне висела проблема памяти. 640К на все про все. И каждый байтик поперек горла вставал.
Нет слов - табличный способ и проще, и быстрей, и чутче.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.05.2017, 23:55
Помогаю со студенческими работами здесь

Как изменить кодировку c 866 в 1251
Здравствуйте! Использую Delphi 6. Есть вот такой обработчик клика. procedure Form1.Button2Click(Sender: TObject); begin ...

Программа для перекодировки русского текста в/ из кои 8 cp 1251 и ср 866
Написать программу для пеекодировки русского текста в/из кои 8 ср 1251 и ср 866

DOS-866 в Unicode (UTF-8)
Замаялся с кодировками. в файле данные в Unicode (UTF-8) у меня в консольнмо приложении в DOS-866. начинаю сливать данные из консоли и из...

Проблема с текстовым файлом (DOS 866)
Я собираю строку текстового файла и формирую ее согласно ниже приведенной декларации. =========================================== ...

Преобразовать текст из кодировки Win1251 в DOS-866
Господа программисты, Вашему вниманию предлагаю следующий код (юнит выложен полностью): unit Unit1; interface uses Windows,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Неблокируемый стек в C++26: реализуем простой сборщик мусора
stackOverflow 02.03.2025
Многопоточные приложения требуют надежных и производительных структур данных, способных эффективно работать в условиях конкурентного доступа. Неблокируемые структуры данных представляют собой особый. . .
Шаблон REQ/REP в ZeroMQ: сверхбыстрый обмен сообщениями в C++ и Python
stackOverflow 02.03.2025
Построение высоконагруженных распределенных систем требует надежного и производительного механизма обмена сообщениями. ZeroMQ выделяется среди прочих решений своей невероятной скоростью работы и. . .
Нестандартные приемы работы с итераторами в C++
stackOverflow 02.03.2025
Итераторы - один из краеугольных камней C++, предоставляющий универсальный механизм обхода и манипуляции данными в контейнерах. Появившись как замена небезопасным указателям, они эволюционировали от. . .
Лексический анализ и регулярные выражения в C++26
stackOverflow 02.03.2025
Лексический анализ - ядро любого компилятора и инструмента обработки текста. Каждый программист сталкивается с задачами парсинга строк, обработки файлов конфигурации или анализа пользовательского. . .
Подробно о std::mdspan в C++23
stackOverflow 02.03.2025
Работа с многомерными массивами данных традиционно была одной из сложных задач в C++. Программистам приходилось создавать собственные абстракции или использовать сторонние библиотеки для эффективной. . .
Колмогоровская сложность в C++: Путь к совершенному коду
stackOverflow 02.03.2025
Абстрактная математическая теория Колмогорова стала мощным средством оценки и улучшения программного кода. Сложность алгоритма - не только в его вычислительной эффективности, но и в том, насколько. . .
Изменения в C# 14
stackOverflow 02.03.2025
Одно из самых значимых изменений в C# 14 - поддержка коллекционных выражений, которые позволяют создавать и инициализировать коллекции с помощью нового лаконичного синтаксиса. Это нововведение. . .
Разработка кроссплатформен­­­­ного мобильного приложения для iOS/Android на C++
bytestream 02.03.2025
C++ как язык программирования высокого уровня с прямым доступом к аппаратным ресурсам позволяет создавать приложения, работающие одинаково быстро как на iOS, так и на Android устройствах. Ни для кого. . .
Аутентификация/авторизация на Golang
bytestream 02.03.2025
Go предлагает множество возможностей для создания надежных систем аутентификации. Встроенные криптографические пакеты, высокая производительность и простота параллельной обработки запросов делают его. . .
Нововведения TypeScript 5.8
bytestream 02.03.2025
TypeScript 5. 8 приносит много возможностей и оптимизаций, которые существенно расширяют границы типобезопасного программирования на JavaScript. Эта версия включает ряд значительных улучшений в работе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru