01.09.2004, 14:11 | #1 |
Участник
|
Binary in Axapta
Добрый день. Вот, нежданно-негаданно на ровном месте столкнулся с такой проблемой.
Работал с API функциями Crystal Report в Аксапте. Там некогторые функции принимают в качестве параметра структуры, которые я реализовывал, создавая класс binary и записывая в него с определнным смещением требуемые члены-данные структуры. И все типа данных в аксапте как типы, кроме str. Он имеет в аксапте неограниченную длину, поэтому, когда я писал static void Job3(Args _args) { binary bin = new binary(128); int n = 666; str 9 s = "123456789"; ; bin.word(10, n); bin.string(0, s); box::info(strfmt("%1", bin.Word(10))); } последний box выдавал 0. А, насколько я понимаю, должен был выдать 5. Если заремить bin.string(0, s);, то все работает. Я так предполагаю, что это из-за того, что string просто затирает весь bin до конца. Никто не имеет никаких мыслей по сему поводу? Я пробовал так ограничить стринг: static void Job3(Args _args) { binary bin = new binary(128); binary bin9 = new binary(9); int n = 666; str 9 s = "123456789"; ; bin.word(10, n); bin9.string(0, s); bin.binary(0, bin9); box::info(strfmt("%1", bin.word(10))); // выдает 5 - павильно box::info(strfmt("%1", bin.string(0))); // вместо строки какие-то закорлючки } Может кто-то подскажет, в чем может быть глюк? Или найдет другой способ вложить в binary строку, чтобы она не затерла все за собой? Ведь с bin.Word все замечательно работает. Может я просто не понимаю, как работает этот бинари? Спасибо, о други! |
|
|
|