![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 07.12.2008
Сообщений: 244
|
![]()
Не могу понять почему выскакивает ошибка. Программа записывает между вот такими скобками [Таб1] Здесь вставляется текст [/Таб1] текст. Но если в файл имеет более 20000 строк то происходит ошибка. Ошибка именно тогда когда я открываю файл и пытаясь произвести запись. Объясните в чем ошибка.
|̲̅̅●̲̅̅|̲̅̅=̲̅̅|̲̅̅●̲̅̅]
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 04.04.2009
Сообщений: 438
|
![]()
Ошибка, понятное дело, когда процедура (del) вызывается рекурсивно 22000 раз. Получаем переполнение стека. Вполне предсказуемая реакция программы.
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 07.12.2008
Сообщений: 244
|
![]()
Тогда не пойму почему когда я беру эти 22000 строк не из файла (а записываю их в sText:TStringList; в программе) то все работает нормально (даже более 200000). Помогите как можно устранить ошибку
|̲̅̅●̲̅̅|̲̅̅=̲̅̅|̲̅̅●̲̅̅]
|
![]() |
![]() |
![]() |
#4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Я не знаю что там за прикол, но могу с уверенностью сказать что твоя стратегия никуда не годится.
У тебя jj не увеличивается, по какой-то причине, если я просто нажму открыть и записать.
I'm learning to live...
|
![]() |
![]() |
![]() |
#5 | |
Форумчанин
Регистрация: 04.04.2009
Сообщений: 438
|
![]() Цитата:
А что "все"? В программе ничего нет, кроме попытки удалить все строки из списка sText, к тому же в рекурсивной процедуре. Как будь то нельзя строки удалять простым методом Delete. Опять же, непонятно, зачем загружать текст в список, чтобы потом все строки удалить. Из текста исходника вообще не понятна цель программы. Два, совершенно бессмысленных оператора: Код:
Не мешало бы рассказать чего требуется от программы. |
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 07.12.2008
Сообщений: 244
|
![]()
Это проблемный фрагмент моей программы. А выполняет он вот что: ищит скобки [Таб1][/Таб1] таких скобок может быть n количество. т.е [Таб1][/Таб1][Таб2][/Таб2]..[ТабN][/ТабN]. Если скобка найдена то процедура writes удаляет все что между ними и записывает новый текст. Если нужной скобки нет то процедура записывает в конец скобки и текст.
|̲̅̅●̲̅̅|̲̅̅=̲̅̅|̲̅̅●̲̅̅]
|
![]() |
![]() |
![]() |
#7 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Думаю тебе нужно что-то вроде такого:
Код:
I'm learning to live...
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 07.12.2008
Сообщений: 244
|
![]()
Stilet спасибо я что то совсем забыл про while.
|̲̅̅●̲̅̅|̲̅̅=̲̅̅|̲̅̅●̲̅̅]
|
![]() |
![]() |
![]() |
#9 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Ну я так с потолка взял. главное что смысл ты понял )
Хотя этот код конечно не оптимальный...
I'm learning to live...
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как комментить много сторок | ytzm2hsD3X0HVxwl | Microsoft Office Excel | 3 | 01.01.2010 03:40 |
Какое программирование в наше время более востребовано и более рентабельно? | iukash | Свободное общение | 18 | 29.10.2009 13:02 |
file of string[размер больше 20000] | Kn793 | Общие вопросы Delphi | 2 | 01.01.2009 16:12 |
Подскажите есть ошибка ? (если да то где) | eyeofthedemon | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 19.09.2008 10:41 |