[D7e]Kompresja ZIP

0

A więc mam taki problem .Chce spakowa kilka plików ZIPem.Używam komponentu jbzip.Uruchamiam program [F9]RUN ,wszystko jest OK,wsyztsko ładnie sie pakuje i w ogóle jest dobrze.Ale gdy biore już 'Build All Projects' to projekt nie chce sie utworzyc poniewaz zatrzymuje sie na linijce (jbzip.pas) o tresci :

    LastCode := Suffix;        {     get first character from input,        }

I wie ktos moze co to oznacz?? jak to ominac??

A i jeszcze jeddno pytanko.Znalazlem jeszcze inny kompresor Ale tam Przy funkcji
FILES (gdzie podaje sie pliki do spakowania) wystepuje 'TStrings' a w jbZip moglo by samo Strings i bylo o wiele latwi ej bo pdawalem np.
Zip1.Files := 'C:\WINC\*.*';
i było ok. A nie wiem jak to zrobic z TStrings??

0
  1. Najprostszą metodą pakowania jest załączenie do projektu programu gzip i odpowiednio uruchomiony ShellExecute.
  2. Jeśli chodzi o TStrings (dzisiaj najczęściej używane jest TStringList, TStrings jest zostawione w celu wstecznej kompatybilności), to jest to klasa zawierająca dynamiczną listę Stringów. Jeśli chodzi o quote same Strings[/quote] to domyślam się, że masz na myśli String, czyli po prostu łańcuch znaków. Aby użyć TStringList należy zadeklarować w var zmienną typu TStringList, następnie ją stworzyć (Zmienna:=TStringList.Create;), dodać do niej odpowiednie linijki (Zmienna.Add('cośtam');) i na koniec (po wykonaniu wszystkich potrzebnych operacji) zwolnić pamięć (Zmienna.Free;).
0

NO bo w ogóle to w jednej wersji jbZip było String i wystarczyło jak juz pisalem wpisac:
Zip1.Files := 'C:\WINC*.';
i po kłopopcie pakowal wszystkie pliki ktore znajdowaly sie w C:\WINC\ , a teraz zzainstalowalem inna wersje i juz String zostalo zastąpiane TStrings.A o wiele łatwiej było z samym String.Prosba mógłbyś mi wkleic kawalek kodu jak zrobi to w TStrings na przykładzie
Zip.1Files := 'C:\WINC*.
, czyli mi chodzic jak to tera mam zastapic??
Z gory wielkioe dzieki

0

Czegoś nie rozumie... Skoro F9 działa to w czym problem. F9 kompiluje zmienione pliki i tworzy exe [diabel]

0

No ja tego też nie rozumiem [F9] działa normalnie, a błąd występuje dopiero gdy biore Build All Projects młasnie wtedy zatrzymuje sie na linijce kodu Jbzip.pas.

0

Milyges: Ale to oznacza, że coś jest nie tak, a czasem używa się polecenia build :].

-ZIP- napisał(a)

Prosba mógłbyś mi wkleic kawalek kodu jak zrobi to w TStrings na przykładzie
Zip.1Files := 'C:\WINC*.* , czyli mi chodzic jak to tera mam zastapic??
Ależ oczywiście:

var
  Strings: TStrings;
begin
  Strings:=TStrings.Create;
  Strings.Add('C:\WINC\*.*');
  Zip.1Files:=Strings;
  /* Tutaj wykonujesz inne metody/podstawienia do parametrów mające na celu spakowanie plików */
  Strings.Free;
  end;

Mam nadzieję, że to pomoże.

0

wielkie dizęki :)

0

Kurde jednak jeszcze cos nie tak. Bo wyskakuje jakis Abstract Error?

0

Hmm... Nie znam tego komponentu, ale może wykonuje coś w osobnym wątku albo coś. Spróbuj wyrzucić tą deklarację Strings: TStrings poza tą pojedynczą metodę, Strings:=TStrings.Create wrzucić do OnCreate formatki, a Strings.Free do OnClose. Może pomoże.

0
Adam.Pilorz napisał(a)
Zip.1Files:=Strings;

jak już to

Zip1.Files.Assign(Strings);

chociaż nie widzę sensu tworzyć nowy obiekt

Zip1.Files.Clear;
Zip1.Files.Add('C:\WINC\*.*');

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