AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.10.2013, 20:02   #14  
rst is offline
rst
Участник
 
45 / 10 (1) +
Регистрация: 27.05.2005
Адрес: москва
Цитата:
Сообщение от rst Посмотреть сообщение
дело продвигается, победа близка
раз уж взялся писать - хочу отчитаться о проделанной работе
итог таков

для большого текста используем 'Microsoft XML, v6.0'.IXMLDOMText
запись выглядит так : MyIXMLDOMText.appendData(MyText);
чтение выглядит так : MyBigText.ADDTEXT(MyIXMLDOMText.substringData(FromPosInt,BufLenInt));
для работы с бинарными данными необходимо использовать файлы, методы BigText не работают
файлы и BigText сопрягаются потоками как обычно
использую Base64


на верхнем уровне :

запись :
IF SomeRecord.BinData.HASVALUE THEN BEGIN
IXMLDOMTextLoc:=XMLDOMDocumentVarPar.createTextNode('');
SomeRecord.BinData.CREATEINSTREAM(InStreamLoc);
BinDataBigTextLoc.READ(InStreamLoc);
BinDataFileCreatedBooleanLoc:=BinDataFileLoc.CREATETEMPFILE;
BinDataFileNameText1024Loc:=BinDataFileLoc.NAME;
BinDataFileLoc.CREATEOUTSTREAM(OutStreamLoc);
BinDataBigTextLoc.WRITE(OutStreamLoc);
EncodeFile2Base64AndWrTextNode(BinDataFileLoc,IXMLDOMTextLoc);
BinDataFileLoc.CLOSE;
IXMLDOMElementLoc:=XMLDOMDocumentVarPar.createElement('BinData');
IXMLDOMElementLoc.appendChild(IXMLDOMTextLoc);
X.appendChild(IXMLDOMElementLoc);
END;

чтение :
GetNodeBigText(X,'BinData',Base64BigTextLoc);
IF Base64BigTextLoc.LENGTH>0 THEN BEGIN
FileNameText250Loc:=CreateTmpFileName(); //использовать CREATETEMPFILE нельзя
BinaryFileLoc.CREATE(FileNameText250Loc);
DecodeBase64BigText2File(Base64BigTextLoc,BinaryFileLoc);
BinaryFileLoc.CLOSE;
SomeRecord.BinData.IMPORT(FileNameText250Loc);
ERASE(FileNameText250Loc);
END;

оптимизация возможна
транспорт по HTTP работать должен
для меня на этом тема закрыта

всем участвовавшим в обсуждении - большое спасибо
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:50.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.