Как открыть файл на запись в кодировке DOS (866)

Страницы: 1
RSS
Как открыть файл на запись в кодировке DOS (866)
 
Здравствуйте.
Возникла такая задача - хочу дописывать информацию в файлы Descript.ion (которые использует FAR manager для комментариев к файлам).
Столкнулся с загвоздкой, что FAR эти файлы делает в DOS кодировке. А lua пишет в файлы в кодировки Windows
Может кто-то подскажет, есть ли в lua возможность открыть файл на запись (да и чтение тоже) в кодировке DOS?
Или на крайний случай функцию, которая конвертирует текст в нужную кодировку. Т.е. чтобы я писал в файл Descript.ion текст под кодировкой Windows, а FAR ее видел нормально
 
Возможно, Вам будет достаточно переключения кодировки в текстовом редакторе FAR между Win и DOS, выполняемой по F8.
Я иногда пользуюсь этим приемом.  
 
Sergey Denegin,
Возможно это поможет
http://lua-users.org/wiki/LuaUnicode
 
Цитата
Борис Гудылин написал:
Возможно, Вам будет достаточно переключения кодировки в текстовом редакторе FAR между Win и DOS, выполняемой по F8.
Я иногда пользуюсь этим приемом.
Мне же не в редакторе его надо смотреть, чтобы FAR понимал правильно кодировку при отображении файлов в режиме Ctrl-6
Многие наверно этим даже никогда не пользовались )  
 
Цитата
Sergey Gorokhov написал:
Возможно это поможет
http://lua-users.org/wiki/LuaUnicode
Мне кажется это про юникод, и в DOS кодировке не поможет
 
Цитата
Sergey Denegin написал:
Мне же не в редакторе его надо смотреть
Я создаю программы в редакторе FAR, при этом по необходимости переключаю кодировки Win-Dos, чтобы то немногое текстовое, что я собираюсь писать в файлы, попадало в них в нужной мне кодировке. .
Проще я уже не объясню.  
 
Цитата
Sergey Denegin написал:
Здравствуйте.
Возникла такая задача - хочу дописывать информацию в файлы Descript.ion (которые использует FAR manager для комментариев к файлам).
Столкнулся с загвоздкой, что FAR эти файлы делает в DOS кодировке. А lua пишет в файлы в кодировки Windows
Может кто-то подскажет, есть ли в lua возможность открыть файл на запись (да и чтение тоже) в кодировке DOS?
Или на крайний случай функцию, которая конвертирует текст в нужную кодировку. Т.е. чтобы я писал в файл Descript.ion текст под кодировкой Windows, а FAR ее видел нормально
Штатных средств перекодировки ни в Lua, ни в QLua - нет.
Вы должны сами перекодировать строку из win1251 кодировки (она же ANSI-RUS в терминах WinAPI), установленной по умолчанию для Quik Lua, в Dos 866 (она же OEM-RUS в терминах WinAPI), перед тем, как ее записывать в файл.
Сделать это можно разными способами.
1. Если для Вас не проблема вызвать dll функцию из Lua, то проще всего воспользоваться штатными средствами Windows: CharToOemA или CharToOemBuffA из user32.dll (при условии, что у Вас русскоязычная версия Windows).
2. Написать самим элементарный перекодировщик. Коды букв русского алфавита для Win1251: А-Я  0xC0 - 0xDF, а-я 0xE0 - 0xFF, Ё 0xA8, ё 0xB8; для Dos866: А-Я  0x80 - 0x9F, а-п 0xA0 - 0xAF, р-я 0xE0 - 0xEF, Ё 0xF0, ё 0xF1.
 
спасибо, напишу свою )  
Страницы: 1
Читают тему
Наверх