Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Delphi + ZipForge (out of memory)


Nutz ©   (2009-11-10 15:32:00) 

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

необходимо сохранить порядка 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


brother   (2009-11-12 11:52:00) [1]

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

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

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

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


Nutz   (2009-11-12 11:49:00) [2]

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


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

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


brother   (2009-11-12 06:58:00) [4]

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


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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо