|
09.04.2003, 18:46 | #1 |
Участник
|
Binary -> Container
Коллеги, не поможете с проблемкой? - хочу запихать класс Binary в Container.
Задача в следующем - внешняя DLL возвращает бинарные данные в классе Binary. Необходимо запихнуть эти данные в таблицу. Кроме как в поле типа Container такие данные, вроде как, не пихнешь. Казалось бы пихни Binary в Container и задача решена, а вот как это сделать? |
|
09.08.2006, 17:49 | #2 |
Участник
|
Я столкнулся с такой же проблемой. Только хочу наоборот container преобразовать в Binary.
Работает в таком виде: PHP код:
Может у кого-нибудь есть идеи? Последний раз редактировалось PMS; 09.08.2006 в 18:13. |
|
09.08.2006, 17:59 | #3 |
Участник
|
Да, кстати, копирование через строку
PHP код:
|
|
10.08.2006, 08:46 | #4 |
Участник
|
Во-первых, самый простой способ ускорить вашу процедуру
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
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: Corel (1). |
10.08.2006, 10:51 | #5 |
Участник
|
AndyD, спасибо.
Способ "Во-первых" действительно ускорил работу с 10 секунд до практически мгновенно (глазом не заметно). Способ "Во-вторых" тоже хороший. Цитата:
Сообщение от AndyD
... а зачем вам именно контейнер засовывать в Binary? Не проще ли данные вставлять непосредственно в него? Меня все-таки удивляет вот что. Есть класс Binary и есть класс BinData. Вроде бы одно и тоже, но похоже, что прямого пути передачи данных между объектами этих классов нет... |
|
10.08.2006, 10:56 | #6 |
Участник
|
Дело в том, что при сохранении в BinData к самим данным дополнительно добавляется служебная информация - идентификатор контейнера, типы данных, размеры контенера и т.д. Не припомню в WinApi функций, которые бы понимали эти данные.
__________________
Axapta v.3.0 sp5 kr2 |
|
10.08.2006, 11:41 | #7 |
Участник
|
Цитата:
Сообщение от AndyD
Дело в том, что при сохранении в BinData к самим данным дополнительно добавляется служебная информация - идентификатор контейнера, типы данных, размеры контенера и т.д. Не припомню в WinApi функций, которые бы понимали эти данные.
В BinData служебная информация в сами данные не добавляется. Во всяком случае, при побайтовом копировании они не вылезают. Последний раз редактировалось PMS; 10.08.2006 в 11:44. |
|
10.08.2006, 11:58 | #8 |
Участник
|
Может я чего-то пропустил, но что такое "заранее заполненный контейнер _c"?
Как вы его получаете?
__________________
Axapta v.3.0 sp5 kr2 |
|
10.08.2006, 12:06 | #9 |
Участник
|
Я имел ввиду, что контейнер передается в метод из поля таблицы, а загружается он туда (в таблицу) из файла.
Последний раз редактировалось PMS; 10.08.2006 в 12:11. |
|
10.08.2006, 12:43 | #10 |
Участник
|
А файл. Тогда прокатит.
Я думал, что речь идет об обычном контейнере с произвольным количеством элементов.
__________________
Axapta v.3.0 sp5 kr2 |
|
10.08.2006, 13:08 | #11 |
Участник
|
Да, да, конечно, я забыл сказать, что в контейнере лежит один объект - файл.
|
|
24.04.2014, 15:22 | #12 |
Участник
|
удалось решить? я пока вижу выход только через биндата сохранить в файл а после через winapi влить обратно в binary- но нужно искать более быстрый способ
|
|
24.04.2014, 15:51 | #13 |
Участник
|
А вот это не то?
X++: BinData.setBinaryData(Binary); |
|
26.04.2014, 16:29 | #14 |
Участник
|
так set вроде как вносит данные или я не прав и она может не только вносить но и выводить? попробую конечно, но чет не верится
|
|
28.04.2014, 10:59 | #15 |
Участник
|
как и говорил set не катит, но катит base64
|
|
|
Похожие темы | ||||
Тема | Ответов | |||
container -> image | 9 | |||
gatesasbait: Quicksort on a container | 1 | |||
axaptapedia: Container | 0 | |||
Dynamics AX Geek: Storing objects in a container | 0 | |||
Binary in Axapta | 6 |
|