AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Noch mal zu Zip Archiven

Ein Thema von mOzZzI · begonnen am 24. Dez 2005 · letzter Beitrag vom 25. Dez 2005
Antwort Antwort
Benutzerbild von mOzZzI
mOzZzI

Registriert seit: 11. Nov 2005
Ort: Bamberg
320 Beiträge
 
Delphi 2006 Professional
 
#1

Noch mal zu Zip Archiven

  Alt 24. Dez 2005, 17:56
Hallo
so jetzt habe ich eine gute Zip Komponente gefunden...ZipForge
Jetzt ,öchte ich mithilfe einer ListBox oder ListView oder...
Dateien öffnen und dann wenn man auf einen Button klickt, das dann diese
Dateien die sich in der ListBox oder ListView...befinden und ein Zip Archiv bilden...
Leider komme ich nicht klar damit...könnte mir jemand helfen??
Mfg ..:mozZzI:..
--Mfg mozZzI--------------
Get & Test my ToolBar (550 KB)
Thread & Comments Here
------------------------------
  Mit Zitat antworten Zitat
Benutzerbild von BeBored
BeBored

Registriert seit: 2. Jun 2004
Ort: Cremlingen
90 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: Noch mal zu Zip Archiven

  Alt 24. Dez 2005, 20:24
So habe ich das bei mir gemacht:

Delphi-Quellcode:
var
  index: integer;
begin
ZipForge1.FileName := 'C:\Archiv.zip';
ZipForge1.OpenArchive(fmCreate);
for index := 0 to Listbox1.Items.Count - 1 do
  begin
    ZipForge1.BaseDir := Listbox1.Items.Count[index];
    ZipForge1.AddFiles('*.*');
  end;
ZipForge1.CloseArchive;
end;
Grüsse

Matthias
Matthias
  Mit Zitat antworten Zitat
Benutzerbild von mOzZzI
mOzZzI

Registriert seit: 11. Nov 2005
Ort: Bamberg
320 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Noch mal zu Zip Archiven

  Alt 24. Dez 2005, 20:35
Deinen Code verstehe ich, aber bei mir spuckt er eine Fehlermeldung aus...

Delphi-Quellcode:
...
procedure TForm1.Button2Click(Sender: TObject);
var
  index: integer;
begin
ZipForge1.FileName := 'C:\Archiv.zip';
ZipForge1.OpenArchive(fmCreate);
for index := 0 to Listbox1.Items.Count - 1 do //<<<Array-Typ erforderlich
  begin
    ZipForge1.BaseDir := Listbox1.Items.Count[index];
    ZipForge1.AddFiles('*.*');
  end;
ZipForge1.CloseArchive;
end;
Mfg
mozZzI
--Mfg mozZzI--------------
Get & Test my ToolBar (550 KB)
Thread & Comments Here
------------------------------
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#4

Re: Noch mal zu Zip Archiven

  Alt 24. Dez 2005, 22:05
Hi,
dein Fehler liegt eine Zeile tiefer :
    ZipForge1.BaseDir := Listbox1.Items.Count[index]; ListBox1.Items.Count ist natürlich eine Zahl, ersetz mal das Count durch ein Strings dann klappt das sicher auch.

Gruß Der Unwissende
  Mit Zitat antworten Zitat
Benutzerbild von BeBored
BeBored

Registriert seit: 2. Jun 2004
Ort: Cremlingen
90 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: Noch mal zu Zip Archiven

  Alt 24. Dez 2005, 22:54
Huch ja sicher, hab das Count aus versehen mit reingehauen, ist bei mir ohne Count.
Matthias
  Mit Zitat antworten Zitat
Benutzerbild von mOzZzI
mOzZzI

Registriert seit: 11. Nov 2005
Ort: Bamberg
320 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Noch mal zu Zip Archiven

  Alt 25. Dez 2005, 01:40
Genau, des wars...
programm läuft und speichert auch ein zip archiv, doch ohne inhalt
Komisch was passt da nicht??
Angehängte Dateien
Dateityp: zip zip_tests_182.zip (272,1 KB, 12x aufgerufen)
--Mfg mozZzI--------------
Get & Test my ToolBar (550 KB)
Thread & Comments Here
------------------------------
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#7

Re: Noch mal zu Zip Archiven

  Alt 25. Dez 2005, 12:17
Hm, also erstmal meine übliche Kritik was Codestil angeht, du solltest dir die Konvention etwas näher anschauen. Ich weiß, es ist noch kein großes Programm und glaub mir ich war Jahrelang noch viel schlimmer unterwegs, aber guter Code hat weniger Fehler (wirklicher Fakt) und man findet sie auch leichter. Rück ein wenig mehr ein, benutz self und beachte ein paar der anderen Regeln, denn je eher man damit anfängt desto besser ist es, aber das ist nur ein Tipp!

Was deinen Code angeht, so solltest du erstmal schauen, was für Rückgabewerte einzelne Funktionen haben. So gibt dir ein SaveDialog (auch ein OpenDialog) ein Boolean zurück. Ist diese Rückgabe wahr, wurde ok gedrückt, sonst abgebrochen.

Für dein ZipForge setzt du ein BaseDir (BasisVerzeichnis), du öffnest aber bestimmte Files. Also bleibt dein Zip einfach leer, weil dein Verzeichnis ungültig ist (eine Datei ist einfach kein Verzeichnis). Um jetzt das ganze Verzeichnis zu packen, indem sich deine Datei befindet solltest du also unbedingt einen anderen Dialog verwenden (so dass auch die Auswahl von Verzeichnissen und nur eben nur diesen möglich ist).
Allerdings hast du dann natürlich auch das Problem, dass du mit der aktuellen Filtermaske direkt ein ganzes Verzeichnis (alle Datein + Ordner) packst.

Möchtest du hingegen wirklich nur die ausgewählten Dateien packen, wirst du um AddFromStream nicht rumkommen (dazu schaust du dir am Besten mal die TFileStreams an (findest du auch viel Hilfe in der DP).
Dann solltest du aber in deinem OpenDialog auch noch Multiselect erlauben.
  Mit Zitat antworten Zitat
Benutzerbild von mOzZzI
mOzZzI

Registriert seit: 11. Nov 2005
Ort: Bamberg
320 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Noch mal zu Zip Archiven

  Alt 25. Dez 2005, 12:57
Dankeschön Der_Unwisssende!!
Daran hats gelegen jetzt funktionierts...
also danke nochmals

Edit: Habs mit FileCtrl SelectFolder gemacht...
--Mfg mozZzI--------------
Get & Test my ToolBar (550 KB)
Thread & Comments Here
------------------------------
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz