|
24.11.2010, 18:15 | #1 |
Участник
|
Цитата:
странно в 2009-й функция Utf2Ansi() валится с ошибкой "Метод вызван с недопустимыми параметрами" на вызове
X++: buf.string(0, _utf8); |
|
24.11.2010, 19:29 | #2 |
Участник
|
Еще - в Ax2009, наверное, лучше делать так (через NET):
X++: static void Job31(Args _args) { System.IO.StreamWriter file; ; file = new System.IO.StreamWriter("C:\\Test.txt", true, System.Text.Encoding::get_UTF8()); file.WriteLine("Привет из Axapta"); file.Close(); } Замечал, что не все низкоуровневые api функции работают на стороне сервера. Может проблема в том что операционная система сервера 64 bit ? Наверное поэтому все серверные вызовы api (класс WinApiServer) переделаны на NET в axapta 2009. |
|
01.08.2011, 09:35 | #3 |
MCITP
|
Цитата:
Сообщение от someOne
Еще - в Ax2009, наверное, лучше делать так (через NET):
X++: static void Job31(Args _args) { System.IO.StreamWriter file; ; file = new System.IO.StreamWriter("C:\\Test.txt", true, System.Text.Encoding::get_UTF8()); file.WriteLine("Привет из Axapta"); file.Close(); } Замечал, что не все низкоуровневые api функции работают на стороне сервера. Может проблема в том что операционная система сервера 64 bit ? Наверное поэтому все серверные вызовы api (класс WinApiServer) переделаны на NET в axapta 2009. У меня ругается на InteropPermission. Пытался применить,то что написано здесь, но не помогает. http://msdn.microsoft.com/en-us/library/bb190039.aspx Видимо руки кривые. static client работает корректно, но хотелось бы на сервере добиться работы. Заранее спасибо. |
|
01.08.2011, 10:08 | #4 |
Молодой, подающий надежды
|
Быть может так получится:
X++: static void Job31(Args _args) { FileName fileName = @'C:\Test.txt'; Set permissionSet = new set(Types::Class); System.Text.Encoding encoding; System.IO.StreamWriter file; #File ; permissionSet.add(new FileIOPermission(fileName, #io_write)); permissionSet.add(new InteropPermission(InteropKind::ClrInterop)); CodeAccessPermission::assertMultiple(permissionSet); try { encoding = System.Text.Encoding::get_UTF8(); file = new System.IO.StreamWriter(fileName, true, encoding); file.WriteLine("Привет из Axapta на сервере"); file.Close(); } catch { error(AifUtil::getClrErrorMessage()); } CodeAccessPermission::revertAssert(); } |
|
|
За это сообщение автора поблагодарили: Logger (3). |
01.08.2011, 23:22 | #5 |
Участник
|
Класс TextIo позволяет задавать кодировку, используется так же как AsciiIo
http://msdn.microsoft.com/en-us/libr...=ax.50%29.aspx |
|
|
За это сообщение автора поблагодарили: someOne (5). |
02.08.2011, 08:39 | #6 |
MCITP
|
Цитата:
Сообщение от jonny
Класс TextIo позволяет задавать кодировку, используется так же как AsciiIo
http://msdn.microsoft.com/en-us/libr...=ax.50%29.aspx Спасибо за информацию! Но мне хочется разобраться именно с вариантом NET. |
|
02.08.2011, 08:36 | #7 |
MCITP
|
Цитата:
Сообщение от pedrozzz
Быть может так получится:
X++: static void Job31(Args _args) { FileName fileName = @'C:\Test.txt'; Set permissionSet = new set(Types::Class); System.Text.Encoding encoding; System.IO.StreamWriter file; #File ; permissionSet.add(new FileIOPermission(fileName, #io_write)); permissionSet.add(new InteropPermission(InteropKind::ClrInterop)); CodeAccessPermission::assertMultiple(permissionSet); try { encoding = System.Text.Encoding::get_UTF8(); file = new System.IO.StreamWriter(fileName, true, encoding); file.WriteLine("Привет из Axapta на сервере"); file.Close(); } catch { error(AifUtil::getClrErrorMessage()); } CodeAccessPermission::revertAssert(); } К сожалению, всё также как и у меня. X++: (08:35:07) "CLRObject" "C:\Test.txt". |
|
02.08.2011, 08:40 | #8 |
Молодой, подающий надежды
|
У меня работает. Проверьте, есть ли у AOS доступ к каталогу.
|
|
|
За это сообщение автора поблагодарили: GBH (1). |
02.08.2011, 09:31 | #9 |
Участник
|
Windows с включенным UAC очень не любит когда в корень пишут файлы.
К примеру в 7-ке не получится просто так создать файл в корне даже из под учетки с админскими правами. Получится только если запускать приложения по правому клику "запускать от имени администратора" |
|
02.08.2011, 12:36 | #10 |
Участник
|
|
|