|  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 | 
| Участник | 
			
			после : это может быть из-за лицензионных соглашений должен стоять вопросительный знак 
				__________________ Удачи! | 
|  |