Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.07.2017, 09:15   #1
brownb
Форумчанин
 
Регистрация: 16.10.2016
Сообщений: 157
По умолчанию out of memory

Код:
memo1.Lines.LoadFromFile('D:\700\'+edit1.Text+'.html');
if Length(Memo1.Text)>0 then begin
memo1.Text:=copy(memo1.Text,pos('<input type="text"value="',memo1.Text)+39,length(memo1.Text)); //ia?acaai neaaa
memo1.Text:=copy(memo1.Text,1,pos('" class="refill_value"',memo1.Text)-1);
memo2.lines.add(memo1.Text);
memo1.Clear;
Edit1.Text := IntToStr(StrToInt(Edit1.Text) + StrToInt(Edit2.Text));
sleep(500);
button1.Click;
end
else
showmessage('1');
Есть 40к старниц надо вытащить строки но программа зависает и пишет out of memory.В чем может быть проблема?
brownb вне форума Ответить с цитированием
Старый 07.07.2017, 09:20   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от brownb Посмотреть сообщение
button1.Click;
дайте угадаю. этот код у Вас висит на кнопке Button1 ? (т.е. на событии button1OnClick) ?!
Т.е. Вы рекурсивно вызываете код сам из себя и потом удивляетесь, что стека не хватает (память заканчивается)?!

я уже молчу о том, что Вы используете Memo1.Text в качестве строки для обработки. Это вообще жуть кошмарная. Вы даже не представляете, какие процедуры/методы с выделением какой кучи памяти при этом задействуются. Выделите переменную строковую для этих целей и в ней уже резвитесь.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.07.2017, 09:22   #3
brownb
Форумчанин
 
Регистрация: 16.10.2016
Сообщений: 157
По умолчанию

А можете помочь?кодом?)
brownb вне форума Ответить с цитированием
Старый 07.07.2017, 10:09   #4
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

1. Получи количество файлов с *.html
2. В цикле от 0 до Количество файлов - 1 или 1 до Количество файлов загружай содержимое файлов в TStringList. Со строками в TStringList работается так же как и в TMemo.
3. Найдённое добавляй в TMemo
Можешь демку набросать с приложенными HTML-файлами и написать что нужно вытащить или вообще что нужно.
Shouldercannon вне форума Ответить с цитированием
Старый 07.07.2017, 10:40   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Shouldercannon Посмотреть сообщение
Можешь демку набросать с приложенными HTML-файлами и написать что нужно вытащить или вообще что нужно.
присоединяюсь. выложите сюда на форум архив с вашими html файлами,
расскажите, что нужно получить в результате, тогда можно будет и кодом помочь.

а пока непонятно ЧТО нужно получить и из ЧЕГО, трудно написать что-то вразумительное.

p.s.
Цитата:
Сообщение от Shouldercannon Посмотреть сообщение
Получи количество файлов с *.html
судя по коду, ему, не все файлы нужны, а какие-то определённые, с заданными именем
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Out of memory... Klim Bassenger Microsoft Office Excel 9 17.01.2018 12:56
Load exe into memory and run it from memory artush1984 Win Api 10 06.02.2012 18:43
Out of memory Bogoley4ik C++ Builder 3 09.04.2011 00:02