Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2016.02.14;
Скачать: [xml.tar.bz2];

Вниз

куда уходит память?   Найти похожие ветки 

 
tippa   (2014-07-26 17:56) [0]

program Project1;

{$APPTYPE CONSOLE}

uses
 SysUtils,
 classes,
 windows;

var list:TStringList;
   i:integer;

procedure pars(str:string);
var l:TstringList;
   buf:string;
begin
l:=TStringList.Create;
l.LoadFromFile(str);
buf:=l.Text;
repeat
if pos("<td> <i class="muted" style="font-size:small">",buf)=0 then break;
delete(buf,1,pos("<td> <i class="muted" style="font-size:small">",buf)+45);
delete(buf,1,pos("href="/node/",buf)+11);
list.Add(copy(buf,1,pos(""",buf)-1));
until false;
l.Free;
end;

procedure obxod1(path:string);
var
FD : TWin32FindData;
FH : THandle;
begin
FH := FindFirstFile(PChar(path+"*.*"), FD);
repeat
 if (FH<>INVALID_HANDLE_VALUE) and (FD.cFileName<>string(".")) and (FD.cFileName<>string("..")) then
 begin
 if (FD.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = FILE_ATTRIBUTE_DIRECTORY then
                                                 begin
                                                 obxod1(path+FD.cFileName+"\");
                                                 end
                                                 else pars(path+FD.cFileName);
                                                 //list.Add(path+FD.cFileName);
 end;
until FindNextFile(FH, FD) = false;
end;

begin
list:=TStringList.Create;
obxod1("folder1\");
list.SaveToFile("result.txt");
list.Free;
end.

перебираю все файлы в папке, каждый файл гружу в стринглист [l], выдираю из него нужное и это нужное записываю в результирующий стринглист [list]. Но уже при 100к строк программе не хватает памяти, причем одна строка в стрингисте [list] - это максимум 20 символов. Подскажите где наврал?


 
RWolf ©   (2014-07-26 19:11) [1]

если list нужен только для накопления строк, почему бы сразу не писать их в файл?
var f:TextFile;
...
writeln(f, copy(buf,1,pos(""",buf)-1));


 
tippa   (2014-07-26 19:21) [2]

да, так будет лучше, спасибо


 
MBo ©   (2014-07-27 14:24) [3]

на будущее - успешный вызов FindFirstFile должен сопровождаться FindClose


 
Dennis I. Komarov ©   (2014-08-06 12:31) [4]

и в try/finally оберни



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2016.02.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.005 c
15-1433362244
d2pak
2015-06-03 23:10
2016.02.14
P-CAD. Редактор УГО


15-1433732777
virex(home)
2015-06-08 06:06
2016.02.14
D7 удаление компонента в форме-предке


3-1306926111
Очень злой
2011-06-01 15:01
2016.02.14
TADOCommand и лишние параметры


2-1405311840
FIL-23
2014-07-14 08:24
2016.02.14
Createprocess как запустить приложение с параметрами


2-1404906872
Друг
2014-07-09 15:54
2016.02.14
Операция сравнения в дженериках





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский