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

Вниз

Delphi + ZipForge (out of memory)   Найти похожие ветки 

 
Nutz   (2009-11-10 15:32) [0]

столкнулся с проблемой:

необходимо сохранить порядка 90 000 иконок (размер около 3 кб) товаров в архив. Делаю примерно так:


procedure TForm1.Button1Click(Sender: TObject);
const
 Path = "C:\Program Files\images\";
var
 F, F2: TFileStream;
 FN: string;
 I, T: Integer;
begin
 T := GetTickCount;
 F := TFileStream.Create("D:\Test.zip", fmCreate);
 try
   ZipForge1.OpenArchive(F, True);
   try
     ZipForge1.BeginUpdate;
     try
       ZipForge1.
       for I := 1 to 90000 do
       begin
         Application.ProcessMessages;

         FN := Format("icon%d.jpg", [I]);
         F2 := TFileStream.Create(Path + FN, fmOpenRead or fmShareDenyNone);
         try
           ZipForge1.AddFromStream(FN, F2);
         finally
           F2.Free;
         end;

         if I mod 500 = 0 then
           Caption := "Иконок в архиве: " + IntToStr(I);

       end;
       ZipForge1.EndUpdate;

     except
       ShowMessage("Call ZipForge.CancelUpdate");
       ZipForge1.CancelUpdate;
     end;
   finally
     ZipForge1.CloseArchive;
   end;
 finally
   F.Free;
   ShowMessageFmt("Время: %d", [GetTickCount - T]);
 end;
end;


Не хватает памяти. переодически появляется out of memory


 
Ухарь   (2009-11-10 20:14) [1]

Не хватает памяти на какой строке?


 
brother ©   (2009-11-12 06:58) [2]

это 263,671875 мегабайта
предположу, что компонент при работе, создает временные буферы, которые жрут память...
зы может на консольный винрар тебе уйти?


 
Dennis I. Komarov ©   (2009-11-12 11:45) [3]

Вообще на сколько я помню ZipForge не фришная штука
И еще, когда-то на нем библиотеку делал, так на нее Паучек ругался, дескать плохая она у тебя...


 
Nutz   (2009-11-12 11:49) [4]

проблему решил отключением опции CopyToBuffer. Как оказалось каждый из вновь добавляемых фалов еще и копировался в clipboard, поэтому забивалась память.


 
brother ©   (2009-11-12 11:52) [5]

> каждый из вновь добавляемых фалов еще и копировался в clipboard,
> поэтому забивалась память.

тыб промолчал а? а то бред получается
и

> проблему решил отключением опции CopyToBuffer

а мы то про нее откуда знаем? в коде ее нет



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

Текущий архив: 2010.01.03;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.01 c
2-1257960684
Валерий
2009-11-11 20:31
2010.01.03
Привязка линий


2-1258192297
AlexDan
2009-11-14 12:51
2010.01.03
положение GetPath


1-1231767209
TStas
2009-01-12 16:33
2010.01.03
Как сделать из gif ов bmp?


2-1258012123
SkyN
2009-11-12 10:48
2010.01.03
как определить, делится ли одно Double на другое Double нацело.


15-1257150981
Kolan
2009-11-02 11:36
2010.01.03
Форма Т-12