23.01.2003, 13:54 | #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 В чем проблема? |
|
23.01.2003, 13:58 | #2 |
Moderator
|
Честно говоря в Аксапте это дело не пробовал. Но уж если очень надо, а по другому никак не получится можно сделать так: импортировать функцию OemToChar и использовать ее.
|
|
24.01.2003, 10:39 | #3 |
Участник
|
Я уже решил эту проблему запуском внешнего перекодировщика. Но это же неэстетично
|
|
24.01.2003, 10:50 | #4 |
----------------
|
"неэстетично" - это то что такой ф-ции в Аксапте нет
А вот вариант предложенный Андре очень даже приятен. Сделать свою ф-цию в Global и юзать ее как стандартную. PHP код:
|
|
24.01.2003, 11:03 | #5 |
Участник
|
Спасибо, работает
|
|
11.08.2003, 11:52 | #6 |
Участник
|
Попробовал функцию, получилось. Только поясните, пожалуйста, почему 'CharToOemA'? В MSDN описана функция CharToOem.
Мне потребовалось использовать функцию OemToChar, и напрямую не пошло. |
|
11.08.2003, 12:21 | #7 |
Участник
|
Если не ошибаюсь, все дело в существовании разных версий ф-ций Win32 API. В одних функциях поодерживается ANSI (Win9x), в других Unicode (WinNT).
У вас похоже стоит Windows 9x
__________________
Александр Игнатьев |
|
11.08.2003, 13:01 | #8 |
Участник
|
Нет, у меня Windows 2000 Pro
|
|
11.08.2003, 13:08 | #9 |
Участник
|
Похоже я сел...
Приду домой, посмотрю, и завтра дам более подробный ответ. А то что-то память подводит. Хотя нет есть идея. Ф-ции с поддержкой ANSI оканчиваются на A, а с пооддержкой Unicode на W. Но я не подумал, что A-функции можно использовать и в WinNT
__________________
Александр Игнатьев |
|
12.08.2003, 11:45 | #10 |
Участник
|
При программировании под WinNT, если мы желаем использовать наш результат компиляюции под WinNT мы объявляем макрос Unicode, ктоторый определяется так
PHP код:
Если прога при выполнении на WinNT вызывает APIFunctionA, то вызывается ф-ция-заглушка, которая преобразует строки в Unicode и вызывает APIFunctionW. Если при выполнении на Win9x прога вызывает APIFunctionW, то ... прога вешается Надеюсь я ответил на ваш вопрос , и почему я ошибся в определении системы.
__________________
Александр Игнатьев |
|
13.08.2003, 12:04 | #11 |
Участник
|
Да, спасибо
|
|
10.09.2003, 17:44 | #12 |
Участник
|
Axapta 3.0 SP1
Класса Asciilo не нашел Это может быть из-за лицензионных соглашений в документации он присутствует. А вообще, надо записать в текстовый файл некоторую информацию. Ее считает другая программа , обработает, потом запишет также в текстовый файл. Аксапта считает результат.
__________________
Удачи! |
|
10.09.2003, 17:45 | #13 |
Участник
|
после : это может быть из-за лицензионных соглашений
должен стоять вопросительный знак
__________________
Удачи! |
|