Главная страница
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.013 c
2-1258016441
Иван
2009-11-12 12:00
2010.01.03
Как экспортировать ListView в Excel?


1-1232557117
du_hast
2009-01-21 19:58
2010.01.03
Работа с CommandBar-ом в Outlook-е


2-1257950877
Alexey
2009-11-11 17:47
2010.01.03
Поток, передача параметра в onTerminated


15-1256225989
Empleado
2009-10-22 19:39
2010.01.03
Поднять облака! Интересно, о какой "установке" идет речь ?...


1-1232695597
yurik85
2009-01-23 10:26
2010.01.03
Изменение данных в текстовом файле