Тема: Binary in Axapta
Показать сообщение отдельно
Старый 01.09.2004, 14:11   #1  
BorDark is offline
BorDark
Участник
Аватар для BorDark
 
24 / 10 (1) +
Регистрация: 09.08.2004
Адрес: планета Земля
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 все замечательно работает. Может я просто не понимаю, как работает этот бинари?

Спасибо, о други!