![]() |
#1 |
Участник
|
Кто умеет делать запись файлов в кодировке DOS
Пытаюсь вывести в файл из Аксапты данные в кодировке DOS.
Вот фрагмент кода: static void MA_VendTable_Export(Args _args) { VendTable VendTable; AsciiIo vt; container c; ; vt = new AsciiIo("c:\\temp\\VendTable.txt", "W"); vt.writeRaw("Проверка"); vt.writeExp([1]); vt.writeRaw(ansi2ascii("Проверка")); vt.writeExp([2]); vt.writeRaw(ascii2ansi("Проверка")); vt.writeExp([3]); В итоге выводится в чем угодно, кроме кодироки DOS ![]() |
|
![]() |
#2 |
Moderator
|
Честно говоря в Аксапте это дело не пробовал. Но уж если очень надо, а по другому никак не получится можно сделать так: импортировать функцию OemToChar и использовать ее.
![]() |
|
![]() |
#3 |
Участник
|
Я уже решил эту проблему запуском внешнего перекодировщика. Но это же неэстетично
![]() |
|
![]() |
#4 |
----------------
|
"неэстетично" - это то что такой ф-ции в Аксапте нет
![]() А вот вариант предложенный Андре очень даже приятен. Сделать свою ф-цию в Global и юзать ее как стандартную. PHP код:
|
|
![]() |
#5 |
Участник
|
Спасибо, работает
![]() |
|
![]() |
#6 |
Участник
|
Попробовал функцию, получилось. Только поясните, пожалуйста, почему 'CharToOemA'? В MSDN описана функция CharToOem.
Мне потребовалось использовать функцию OemToChar, и напрямую не пошло. |
|
![]() |
#7 |
Участник
|
Если не ошибаюсь, все дело в существовании разных версий ф-ций Win32 API. В одних функциях поодерживается ANSI (Win9x), в других Unicode (WinNT).
У вас похоже стоит Windows 9x
__________________
Александр Игнатьев |
|
![]() |
#8 |
Участник
|
Нет, у меня Windows 2000 Pro
|
|
![]() |
#9 |
Участник
|
Похоже я сел...
Приду домой, посмотрю, и завтра дам более подробный ответ. А то что-то память подводит. Хотя нет есть идея. Ф-ции с поддержкой ANSI оканчиваются на A, а с пооддержкой Unicode на W. Но я не подумал, что A-функции можно использовать и в WinNT ![]()
__________________
Александр Игнатьев |
|
![]() |
#10 |
Участник
|
При программировании под WinNT, если мы желаем использовать наш результат компиляюции под WinNT мы объявляем макрос Unicode, ктоторый определяется так
PHP код:
Если прога при выполнении на WinNT вызывает APIFunctionA, то вызывается ф-ция-заглушка, которая преобразует строки в Unicode и вызывает APIFunctionW. Если при выполнении на Win9x прога вызывает APIFunctionW, то ... прога вешается Надеюсь я ответил на ваш вопрос , и почему я ошибся в определении системы.
__________________
Александр Игнатьев |
|
![]() |
#11 |
Участник
|
Да, спасибо
|
|
![]() |
#12 |
Участник
|
Axapta 3.0 SP1
Класса Asciilo не нашел Это может быть из-за лицензионных соглашений в документации он присутствует. А вообще, надо записать в текстовый файл некоторую информацию. Ее считает другая программа , обработает, потом запишет также в текстовый файл. Аксапта считает результат.
__________________
Удачи! |
|
![]() |
#13 |
Участник
|
после : это может быть из-за лицензионных соглашений
должен стоять вопросительный знак
__________________
Удачи! |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|