|
v7: AddIn.XMLParser вылетает 1С | ☑ | ||
---|---|---|---|---|
0
AlexFF
12.10.15
✎
15:04
|
Пытаюсь загрузить xml файл из строки "ОтветМодуляЕГАИС" для последующей обработки
XMLАнализатор = СоздатьОбъект("AddIn.XMLParser"); ХМЛФайлДанных = XMLАнализатор.СоздатьДокумент(); ХМЛФайлДанных.ЗагрузитьИзСтроки(ОтветМодуляЕГАИС); и пограмма вылетает. Просто закрывается и все. СтрДлина(ОтветМодуляЕГАИС)=742555 Как быть? Каким образом прочитать такую длинную строку? |
|||
1
бомболюк
12.10.15
✎
15:40
|
там вроде надо писат ькак то типа
СоздатьПоследовательноСчитываемыйДокумент() или типа того... |
|||
2
бомболюк
12.10.15
✎
15:41
|
и с длинными строками в 7ке работать не получается.
|
|||
3
Злопчинский
12.10.15
✎
15:56
|
прочитать и сохранить из 1С внеплатформенными средствами.
После концов тегов вставить энтеры внеплатформенными средствами. после этого обработать собственно иксемель штатно |
|||
4
AlexFF
12.10.15
✎
16:03
|
(3) Спасибо попробую. А энтеры обязательно вставлять?
|
|||
5
AlexFF
12.10.15
✎
16:07
|
Какими, например внеплатформенными средствами можно поставить энтеры?
|
|||
6
spectre1978
12.10.15
✎
16:15
|
Мож, другой парсер? С тем же msxml через OLE поработать?
|
|||
7
Злопчинский
12.10.15
✎
18:40
|
(5) самый тупой вариант: читай посимвольно, выводи в другой файл посимвольно, как встретишь ">" - в вывод добавляй энтер.
а потом получишь в итоговом файле не одну строку длиной 700 килобайт а кучу строк вменяемой длины... и обрабатывай чем хошь - темже самым иксемельпарсером.. |
|||
8
trad
12.10.15
✎
19:48
|
(7) если в строке, кроме прочего, появятся ентеры, то строка от этого не станет короче
|
|||
9
Злопчинский
12.10.15
✎
22:24
|
(8) согласен
Но все же есть надежда что так будет легче хотя бы в чемто |
|||
10
spectre1978
13.10.15
✎
07:37
|
(9) вообще 700К, мне кажется, не так уж это и много. А какое ограничение у длины строки в семерке? Нагуглить ничего внятного не смог.
|
|||
11
spectre1978
13.10.15
✎
07:42
|
может, в ответе есть какая-нть байда которая роняет парсер? Другие аналогичные ответы проходят?
|
|||
12
trad
13.10.15
✎
09:27
|
(10) У семерки проблема с передачей длинной строки через COM, коим является, например, передача в метод объекта, реализованного по стандартной технологии ВК.
Предельного значения не помню. |
|||
13
Смотрящий
13.10.15
✎
09:28
|
(12) В 7.7 нету COMа
|
|||
14
spectre1978
13.10.15
✎
09:29
|
(13) что значит "нету COMа"? Создание и вызов ком-объектов вполне себе работает
|
|||
15
spectre1978
13.10.15
✎
09:29
|
(12) не знал об этом, понятно
|
|||
16
Злопчинский
13.10.15
✎
09:49
|
(10) 32К вроде
|
|||
17
trad
13.10.15
✎
10:17
|
(13) не какой технологии, по твоему, основана ТСВК
|
|||
18
trad
13.10.15
✎
10:23
|
(16) строки в семерке могут быть очень большие, ограничение - размер доступной виртуальной памяти процесса.
Проблема возникает при COM-взаимодействии, на этапе преобразования в/из BSTR. Очень давно изучал этот вопрос, насколько помню, там что то "не чисто" с выделением памяти. |
|||
19
trad
13.10.15
✎
10:25
|
(18) + для обхода этой проблемы написал костыль в рамках oleexsup.dll
пример WinHttpRequest ошибка при отправке запроса |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |