Во-первых, самый простой способ ускорить вашу процедуру
X++:
Binary con2Binary(container _c)
{
BinData bd = new BinData();
Binary b;
int i;
int num;
Array SafeArray;
;
bd.setData(_c); //тут уже заранее заполненный контейнер _c
SafeArray = bd.getVariant().safeArray();
num = SafeArray.lastIndex();
b = new Binary(num+1);
for(i=1; i<(num+1); i++)
b.byte(i-1, SafeArray.value(i));
return b;
}
Во-вторых, можно сделать так
X++:
str s;
;
s = BinData::dataToString(_c);
// в результате в s - строка, представляющая в шестнадцатиричном виде
// данные контейнера (071d и т.д.) с разделителями между строками \n
// В цикле пробегаете по строке, преобразовываете двойки в числа hex2int()
// и сохраняете в Binary
В-третьих, а зачем вам именно контейнер засовывать в Binary? Не проще ли данные вставлять непосредственно в него?