|
16.04.2014, 11:31 | #1 |
Участник
|
Binary + Binary How?
Как сложить 3 binary в один?
По просторам интернета не нарыл, эксперементирую и ни чего не выходит. может кто поможет. если кто знает методом побитового копирования через for - не предлагайте пробую RtlMoveMemory так же не выходит. чего туда сувать для копирования хз(вернее чего сувать знаю , но как получить это не знаю) |
|
16.04.2014, 11:50 | #2 |
Сенбернар
|
А зачем вы это делаете, что на входе, и что на выходе получить хотите - не поделитесь?
И версия еще Аксапы какая, да.. А так - вот это можно посмотреть, к примеру : http://msdn.microsoft.com/en-us/libr...(v=ax.50).aspx
__________________
Best Regards, Roman Последний раз редактировалось RVS; 16.04.2014 в 11:58. |
|
16.04.2014, 12:55 | #3 |
Участник
|
Вот об этом классе и идет реч. только примера сложения вроде нет. Нужно сложить 3 binary. данные в двоичном виде. каждый набор binary даннных является двоичным продолжением другого, вместе образуют конечный двоичный файл ax 2009
|
|
16.04.2014, 13:03 | #4 |
Сенбернар
|
Гм.. а тупо выкинуть их (по очереди) в файл, и потом этот файл засунуть в Binary ?
Вообще, там есть многообещающие методы типа : Binary.appendSubString Method Binary.attach Method - вроде как можно что-то куда-то добавить public void attach(int64 bufPtr, int bufSize) Я бы это пробовал..
__________________
Best Regards, Roman Последний раз редактировалось RVS; 16.04.2014 в 13:15. |
|
16.04.2014, 13:14 | #5 |
Участник
|
методом for конечно можно, однако размер в килобайт уже заставляет подождать.А если еще больше? - ну какая нафиг система ERP которая еле шевелится.
Binary и attach методы класса вроде как берут нужное колво байт и вставляет в новый binary- не в продолжение старого(не катит - обрезать можно, но соеденять вроде не получается). метод String и wstring читают до нулевого байта- вроде тоже не то. И еще для справки binary класс вроде не может держать 2 гига данных, а bindata и того меньше. на примерно 0x4000000 +- затыкается аксапта Последний раз редактировалось udmitriy; 16.04.2014 в 13:18. |
|
16.04.2014, 13:33 | #6 |
Сенбернар
|
Класс BinaryIO посмотрите. Там есть режим Append, но это - через файл.
Или вам и надо это - файл получить?
__________________
Best Regards, Roman |
|
16.04.2014, 14:56 | #7 |
Участник
|
udmitriy
System.IO.MemoryStream - не? |
|
16.04.2014, 15:14 | #8 |
Участник
|
а по подробнее (пример какой нибудь можно или ссылку)(не работал с этим еще) - как его из binary инициализировать
Последний раз редактировалось udmitriy; 16.04.2014 в 15:17. |
|
16.04.2014, 22:59 | #9 |
Молодой, подающий надежды
|
Цитата:
X++: Binary binary1 = new Binary("string1"); Binary binary2 = new Binary("string2"); Binary binaryResult; System.Byte[] byte1; System.Byte[] byte2; System.Byte[] byteResult; int len; System.IO.MemoryStream memoryStream; ; try { memoryStream = binary1.getMemoryStream(); byte1 = memoryStream.ToArray(); memoryStream.Close(); memoryStream = binary2.getMemoryStream(); byte2 = memoryStream.ToArray(); memoryStream.Close(); len = CLRInterop::getAnyTypeForObject(byte1.get_Length()) - 1; len += CLRInterop::getAnyTypeForObject(byte2.get_Length()) - 1; byteResult = new System.Byte[len](); memoryStream = new System.IO.MemoryStream(byteResult); memoryStream.Write(byte1, 0, CLRInterop::getAnyTypeForObject(byte1.get_Length()) - 1); memoryStream.Write(byte2, 0, CLRInterop::getAnyTypeForObject(byte2.get_Length()) - 1); binaryResult = Binary::constructFromMemoryStream(memoryStream); memoryStream.Close(); info(binaryResult.string(0)); } catch (Exception::CLRError) { error(AifUtil::getClrErrorMessage()); } X++: ... byteResult = new System.Byte[len](); System.Buffer::BlockCopy( byte1, 0, byteResult, 0, CLRInterop::getAnyTypeForObject(byte1.get_Length()) - 1); System.Buffer::BlockCopy( byte2, 0, byteResult, CLRInterop::getAnyTypeForObject(byte1.get_Length()) - 1, CLRInterop::getAnyTypeForObject(byte2.get_Length()) - 1); memoryStream = new System.IO.MemoryStream(byteResult); ...
__________________
Кононов Пётр Последний раз редактировалось pedrozzz; 16.04.2014 в 23:06. |
|
17.04.2014, 05:32 | #10 |
Участник
|
Спасибо, но разобрался через rtlmovememory. нескоолько строчек и производительность приятно удивила
|
|
17.04.2014, 13:03 | #11 |
Участник
|
пример выложу сюда ODBC ax2009
|
|
|
За это сообщение автора поблагодарили: S.Kuskov (1). |