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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.004 c
15-1250364331
Kerk
2009-08-15 23:25
2010.01.03
Попиарюсь маленько :)


2-1257960684
Валерий
2009-11-11 20:31
2010.01.03
Привязка линий


15-1257173342
Иксик
2009-11-02 17:49
2010.01.03
Есть ли возможность вынести javascript события типа onclick


2-1258126527
zlo
2009-11-13 18:35
2010.01.03
Методы в record


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





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский