|
Как получить размер еще не созданного XML, который будет создан из ОбъектаXDTO? |
☑ |
0
kugelfangg
25.09.18
✎
11:07
|
Всем привет!
Господа, подскажите пожалуйста как можно получить размер в Мб или количество символов ОбъектаXDTO?
Суть задачи в следующем:
Сделать выгрузку данных в XML, при этом файл не должен быть больше 4 Мб.
Для того чтобы «вовремя остановиться» нужно каким то образом проверять размер ОбъектаXDTO. Делать это нужно до записи в файл XML.
К сожалению, вариант с записью ОбъектаXDTO в файл XML не подходит, так как данных выгружаться будет очень много и если постоянно мурыжить (перезаписывать, проверять размер файла) это сильно скажется на скорости выгрузки данных.
|
|
1
s03
25.09.18
✎
11:12
|
Выгружай по одному объекту (одному комплекту объектов, которые нельзя разделить на разные выгрузки)
|
|
2
MaxS
25.09.18
✎
11:15
|
Собирать статистику, чтобы повысить вероятность угадывания. В конце проверять размер если превысил, повторить с меньшим количеством объектов.
|
|
3
mTema32
25.09.18
✎
11:17
|
(0)"Как получить размер еще не созданного XML"
Автор, перечитай еще раз свой вопрос.
Тут логическая ошибка.
|
|
4
kugelfangg
25.09.18
✎
11:18
|
(1) Один комплект это строка срока товара, при каждой выгрузке будет выгружаться примерно 400 000 строк. SFTP помрет от такого обилия файлов=)
|
|
5
kugelfangg
25.09.18
✎
11:26
|
(2) Этот вариант можно рассматривать как запасной, так как количество символов всегда будет разное, и рано или поздно можно будет влететь на перебор с размером, даже если собрать статистику. Конечно можно уменьшить лимит до 3.5 Мб, чтобы точно попадать в лимит 4 Мб. Но проблема в том что таких выгрузок около 12 и в каждой свой объем данных поэтому придется долго шаманить=) Я хотел найти более технологичный способ решения проблемы.
Но за идею все равно спасибо!=)
|
|
6
Serg_1960
25.09.18
✎
11:31
|
На память приходит только ветка v8: Как хотя бы грубо определить размер будущего файла из ЗаписьXML? - но там я предлагал пообъектную запись во временный файл для получения размера перед добавлением в основной файл. Не оптимальный подход.
|
|
7
RomaH
naïve
25.09.18
✎
11:35
|
"Сделать выгрузку данных в XML, при этом файл не должен быть больше 4 Мб. "
делай по 2 МБ
|
|
8
Serg_1960
25.09.18
✎
11:41
|
Помню однажды было обсуждение "обратной" задачи - сформированный большой файл XML "разбить" на пачку файлов ограниченного размера. Сейчас, увы, не могу найти.
|
|
9
Вафель
25.09.18
✎
12:13
|
ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, ОбъектXTDO); СтрокаXML = ЗаписьXML.Закрыть();
|
|
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой