![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 27.04.2012
Сообщений: 219
|
![]()
Ув. форумчане, направьте в нужную сторону. Проблема вроде и есть, и вроде ее нет. Но хочется разобраться.
Собрал свой XML парсер, все работает замечательно для XML оч. больших объемов. Но во всем этом мёде, есть ложечка....... При загрузке одного файла никаких сбоев не наблюдаю, но при цикличном Load двух и более файлов в этом месте: Код:
Код:
Код:
Код перепроверил, все очищаю и уничтожаю. Загрузка XML прописана следующим образом: Код:
ReadSize := 100 000, при 10 000 все ОК
Пишу много и развернуто
Последний раз редактировалось Heneken87; 21.06.2018 в 09:58. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
во-первых, Вы код, где идёт чтение и работа с FChildBlock не выложили.
к чему выложенный кусок кода - мне непонятно. а во-вторых, это какая-то нереальная фантастика. не может пропасть часть символов внутри. может пропасть в начале, может — в конце. Но не внутри! Скажите, после того, как Вы прочитали в FChildBlock Вы выполняете процедуру парсинга? Очень вероятно, что это именно она косячит. |
![]() |
![]() |
![]() |
#3 | ||
Форумчанин
Регистрация: 27.04.2012
Сообщений: 219
|
![]()
Спасибо за быстрый ответ.
Цитата:
Цитата:
Код:
Пишу много и развернуто
|
||
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
LastPosition обнулять не забываете?
![]() а так - раз ситуация повторяется, тогда моделируйте ситуацию, когда возникает глюк, ставьте точку останова и смотрите в отладчике, что не так. вариантов много. например, Вы используете переменные типа byte, word или smallint для позиций. а может в логике есть небольшой изъян. Без отладчика и понимания алгоритма - трудно сразу сказать. Последний раз редактировалось Serge_Bliznykov; 21.06.2018 в 11:40. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 27.04.2012
Сообщений: 219
|
![]()
нет конечно не забываю) Чтение файла:
1- Создал класс TXmlReader 2- Установил дефолты 3- Пропарсил 4- Закрыл файл 5 - Уничтожил класс стоит эти пункты в цикл завернуть..приехали. Если честно там и с отладчиком не просто=) Методы рекурсивные, XML любой вложенности кушает. На простых XML я не могу отловить такую ошибку,а на сложных может крыша съехать))) Использую Int64 для позиций. Через отладчик, как раз и нашел что в Код:
LastPosition это TStremReader.Position, хотя вы поняли что это и зачем это
Пишу много и развернуто
Последний раз редактировалось Heneken87; 21.06.2018 в 11:52. |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 27.04.2012
Сообщений: 219
|
![]()
По алгоритму, чей листинг выложен. Метод ищет в переданном тексте начало и конец требуемого чилдика. Нашел, вырезал весь чилдик, перешел к следующему и так пока не вырежет все блоки. .... МБ проблема в переносе строки может крыться..... если да, тогда я вообще не понимаю как это зависит от кол-ва файлов...
Пишу много и развернуто
|
![]() |
![]() |
![]() |
#7 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
![]()
ReadBlock- функция
SetLength(FChildBlock,FSizeBlock); TextAll :=string.Create(FChildBlock,0,ReadB lock(FChildBlock,FSizeBlock))
Не стесняемся, плюсуем!
![]() |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 27.04.2012
Сообщений: 219
|
![]()
Спасибо, помогло. Вопрос закрыт.
Пишу много и развернуто
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
реализовать метод Эйлера и метод Рунге-Кутте 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 05:23 |