Zasoby i rozpakowywanie pliku

0
Res:=TResourceStream.Creat(hInstance,'SPECYFIKACJA',RT_RCDATA);
Res.SaveToFile(path+'\Program.exe');

Res:=TResourceStream.Create(hInstance,'POMOC',RT_RCDATA);
Res.SaveToFile(path+'\Pomoc.hlp');

Res:=TResourceStream.Create(hInstance,'SPIS',RT_RCDATA);
Res.SaveToFile(path+'\Pomoc.cnt');

Res.Free;

Mam te 3 pliki w zasobach no i tu wystepuje problem, jak ten powyzszy kod z optymalizowac tzn. jakas petelka czy cus.

0

Dla trzech plików chcesz robić pętlę ? Jeśli się upierasz... Wrzuć nazwy docelowe i źródłowe do tablic 3-elementowych, no i index musisz sobie zadeklarować . I jedziesz. ;p

0

Zoptymalizować ? Raczej isę nie da. poza tym zwalniaj Res po każdym jego tworzeniu, a nie po końcu...

Res:=TResourceStream.Create(...)
...
Res.Free;

Res:=TResourceStream.Create(...)
...
Res.Free;

.
.
.

itd... :)

0
Res:=TResourceStream.Creat(hInstance,'SPECYFIKACJA',RT_RCDATA);
Res.SaveToFile(path+'\Program.exe');


Res:=TResourceStream.Create(hInstance,'SPIS',RT_RCDATA);
Res.SaveToFile(path+'\Pomoc.cnt');

Res.Free;

Mam te 3 pliki w zasobach no i tu wystepuje problem, jak ten powyzszy kod z optymalizowac tzn. jakas petelka czy cus.

procedure optymalna(nazwa_zasobu, plik, path : string);
var
Res : TResourceStream;
begin
 Res := TResourceStream.Create(hInstance,nazwa_zasobu,RT_RCDATA);
 Res.SaveToFile(path+plik);
end;

hehe :D i robisz tylko

optymalna('spis', 'pomoc.cnt', 'c:');
0
procedure optymalna(nazwa_zasobu, plik, path:string);
var
  Res : TResourceStream;
begin
  Res := TResourceStream.Create(hInstance,nazwa_zasobu,RT_RCDATA);
  Res.SaveToFile(path+plik);
  Res.free;
end;

const
  nm:array[0..2,boolean]of string=
  (('SPECYFIKACJA','Program.exe'),
  ('POMOC','Pomoc.hlp'),
  ('SPIS','Pomoc.cnt'));
var i:byte;
begin
  i:=3;
  while(boolean(i))do
    begin
      dec(i);
      optymalna(nm[i][false],nm[i][true], 'c:');  // nm[i,false] lub tyż nm(.i,false.) alibo nm(.i.)(.false.)
  end;
end.

Kto zakłada zespół :-) ?

[do postu poniżej]
A czytałes mój poprzedni post? Dla raptem trzech plików najlepiej to zrobić bez pętli i bez dodatkowych procedur. EOT

0

flabra: - ten kod anonima jest mój - siedziałem sobie właśnie w kawiarence i czekałem na dziewczyne... i nie chciało mi sie logować - a poza tym zrobiłem to tak dla jaj... ale widze że to rzeczywiście jest optymalizacja - warunek - opłaca sie top tylko do wyciągania dużej liczby plików z zasobów...

1 użytkowników online, w tym zalogowanych: 0, gości: 1