![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос | Заплачу за решение | Новые сообщения Сообщения за день | Расширенный поиск | Правила | Всё прочитано |
![]() |
|
Опции темы |
![]() |
#1 |
Форумчанин
Регистрация: 27.04.2012
Сообщений: 168
Репутация: 39
|
![]()
Ув. форумчане, направьте в нужную сторону. Проблема вроде и есть, и вроде ее нет. Но хочется разобраться.
Собрал свой XML парсер, все работает замечательно для XML оч. больших объемов. Но во всем этом мёде, есть ложечка....... При загрузке одного файла никаких сбоев не наблюдаю, но при цикличном Load двух и более файлов в этом месте: Код:
Код:
Код:
Код перепроверил, все очищаю и уничтожаю. Загрузка XML прописана следующим образом: Код:
ReadSize := 100 000, при 10 000 все ОК
__________________
Пишу много и развернуто Последний раз редактировалось Heneken87; 21.06.2018 в 10:58. |
![]() |
![]() |
![]() |
#2 |
МегаМодератор
СуперМодератор
Регистрация: 09.01.2008
Сообщений: 24,637
Репутация: 5386
|
![]()
во-первых, Вы код, где идёт чтение и работа с FChildBlock не выложили.
к чему выложенный кусок кода - мне непонятно. а во-вторых, это какая-то нереальная фантастика. не может пропасть часть символов внутри. может пропасть в начале, может — в конце. Но не внутри! Скажите, после того, как Вы прочитали в FChildBlock Вы выполняете процедуру парсинга? Очень вероятно, что это именно она косячит. |
![]() |
![]() |
![]() |
#3 | ||
Форумчанин
Регистрация: 27.04.2012
Сообщений: 168
Репутация: 39
|
![]()
Спасибо за быстрый ответ.
Цитата:
Цитата:
Код:
__________________
Пишу много и развернуто |
||
![]() |
![]() |
![]() |
#4 |
МегаМодератор
СуперМодератор
Регистрация: 09.01.2008
Сообщений: 24,637
Репутация: 5386
|
![]()
LastPosition обнулять не забываете?
![]() а так - раз ситуация повторяется, тогда моделируйте ситуацию, когда возникает глюк, ставьте точку останова и смотрите в отладчике, что не так. вариантов много. например, Вы используете переменные типа byte, word или smallint для позиций. а может в логике есть небольшой изъян. Без отладчика и понимания алгоритма - трудно сразу сказать. Последний раз редактировалось Serge_Bliznykov; 21.06.2018 в 12:40. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 27.04.2012
Сообщений: 168
Репутация: 39
|
![]()
нет конечно не забываю) Чтение файла:
1- Создал класс TXmlReader 2- Установил дефолты 3- Пропарсил 4- Закрыл файл 5 - Уничтожил класс стоит эти пункты в цикл завернуть..приехали. Если честно там и с отладчиком не просто=) Методы рекурсивные, XML любой вложенности кушает. На простых XML я не могу отловить такую ошибку,а на сложных может крыша съехать))) Использую Int64 для позиций. Через отладчик, как раз и нашел что в Код:
LastPosition это TStremReader.Position, хотя вы поняли что это и зачем это
__________________
Пишу много и развернуто Последний раз редактировалось Heneken87; 21.06.2018 в 12:52. |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 27.04.2012
Сообщений: 168
Репутация: 39
|
![]()
По алгоритму, чей листинг выложен. Метод ищет в переданном тексте начало и конец требуемого чилдика. Нашел, вырезал весь чилдик, перешел к следующему и так пока не вырежет все блоки. .... МБ проблема в переносе строки может крыться..... если да, тогда я вообще не понимаю как это зависит от кол-ва файлов...
__________________
Пишу много и развернуто |
![]() |
![]() |
![]() |
#7 |
Профессионал
Регистрация: 07.12.2011
Адрес: Siberia
Сообщений: 1,021
Репутация: 759
|
![]()
ReadBlock- функция
SetLength(FChildBlock,FSizeBlock); TextAll :=string.Create(FChildBlock,0,ReadB lock(FChildBlock,FSizeBlock))
__________________
Не стесняемся, плюсуем! ![]() |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 27.04.2012
Сообщений: 168
Репутация: 39
|
![]()
Спасибо, помогло. Вопрос закрыт.
__________________
Пишу много и развернуто |
![]() |
![]() |
![]() |
Опции темы | |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
реализовать метод Эйлера и метод Рунге-Кутте 4-ого порядка на языке С++ | Janny2014 | Помощь студентам | 1 | 27.11.2013 05:23 |
Метод перебора, Метод дихотомии, Метод золотого сечения Delphi !!! | OneBri | Помощь студентам | 0 | 03.10.2012 08:42 |
исследовать метод квадратных корней и метод Холецкого для решения СЛАУ | Vит@x@ | Помощь студентам | 0 | 22.11.2011 10:47 |
Задача Коммивояжера. Метод Монте-Карло и метод приращений. [Паскаль] | U9110 | Помощь студентам | 4 | 06.04.2011 09:48 |
Turbo Pascal[програмыки : текстовая\метод симпсона\метод половинного деления | qsccsq | Помощь студентам | 7 | 24.12.2010 06:23 |
|
|