Главная страница
    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
Попиарюсь маленько :)


10-1162126009
KASioZZzZ
2006-10-29 15:46
2010.01.03
TWebBrowser


15-1257419287
Piter
2009-11-05 14:08
2010.01.03
В чем смысл спама от вконтакте?


15-1257197413
Юрий
2009-11-03 00:30
2010.01.03
С днем рождения ! 3 ноября 2009 вторник


2-1257999548
Андрей Смирнов
2009-11-12 07:19
2010.01.03
Как доработать функцию поиска, для работы в цикле?





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