Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2016.02.14;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.004 c
15-1433584118
pavelnk
2015-06-06 12:48
2016.02.14
Событие onShow


2-1406532286
Dmitry
2014-07-28 11:24
2016.02.14
Как в QuickReport открить отчет для просмта сразу в Preview


4-1275893282
apic
2010-06-07 10:48
2016.02.14
Как отследить изменения в определенной ветке реестра?


15-1433362244
d2pak
2015-06-03 23:10
2016.02.14
P-CAD. Редактор УГО


15-1433494059
Pavelnk
2015-06-05 11:47
2016.02.14
Юридический вопрос