AGB  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Mit Rar packen per Datei-Liste

Ein Thema von nachtstreuner · begonnen am 26. Apr 2012 · letzter Beitrag vom 27. Apr 2012
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
25.782 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#11

AW: Mit Rar packen per Datei-Liste

  Alt 27. Apr 2012, 08:32
Ein Beispiel von vielen: Programm starten u. auf dessen Ende warten + Rückgabewert
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
31.029 Beiträge
 
Delphi XE3 Professional
 
#12

AW: Mit Rar packen per Datei-Liste

  Alt 27. Apr 2012, 08:45
Nja, optisch sieht ExecuteProgramm schon so aus, als wenn es funktionieren könnte.
Nur noch in eine Funktion umwandeln oder ein Out/Var-Parameter für den ExitCode
und diesen dann auch noch auswerten.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
nachtstreuner

Registriert seit: 21. Aug 2005
Ort: ESA
104 Beiträge
 
Delphi XE2 Professional
 
#13

AW: Mit Rar packen per Datei-Liste

  Alt 27. Apr 2012, 08:47
Hallo DeddyH,

Die Erklärungen tragen leider nichts zur Lösung meines Problems bei, sind aber sehr interessant und im Code mit Sicherheit zu berücksichtigen. Werde ich auch testen.

Nach langem Probieren, warum die Packliste(@backup.lst) nicht ausgelesen wurde, habe ich nun die vermeintliche Lösung gefunden.

Ich mache noch ein paar Tests in Bezug auf Leerzeichen, Sonderzeichen in Dateinamen und werde das Ergebnis posten bzw.
wenn gewünscht werde ich versuchen, wenn nun alles sauber funktioniert ein aussagekräftiges Tut. zu schreiben, für alle die sich mit den Kommandozeilen in der RAR.exe herumschlagen wollen.

Beim jetzigen Test, werden sowohl ganze Ordner mit Unterordner , sowie Dateien mit RAR aus Delphi heraus gepackt. Wunschweise auch mit Ursprungspfad oder auch Ohne (siehe param -ep1).

Wie gesagt ich melde mich gleich wieder.

Gruß nachtstreuner
Alles wird gut -
Alles wird gut -
  Mit Zitat antworten Zitat
nachtstreuner

Registriert seit: 21. Aug 2005
Ort: ESA
104 Beiträge
 
Delphi XE2 Professional
 
#14

AW: Mit Rar packen per Datei-Liste

  Alt 27. Apr 2012, 08:49
Hallo himitsu,

den ExitCode werte ich doch aus.
Code:
if Flag = 0  then Showmessage('['+IntToStr(Flag)+'] : Packvorgang war erfolgreich !');
Oder nicht ?
Miniaturansicht angehängter Grafiken
5.jpg  
Alles wird gut -

Geändert von nachtstreuner (27. Apr 2012 um 08:53 Uhr)
  Mit Zitat antworten Zitat
nachtstreuner

Registriert seit: 21. Aug 2005
Ort: ESA
104 Beiträge
 
Delphi XE2 Professional
 
#15

AW: Mit Rar packen per Datei-Liste

  Alt 27. Apr 2012, 10:25
Hallo Delphianer,

nun hat alles geklappt:

- erstelle Datei-Liste mit den zu packenden Dateien (backup.lst) im Programmverzeichnis der .exe
- packen von einzelnen Dateien, sowie ganzen Ordnern samt Unterverzeichnissen
- funktioniert auch mit Leerzeichen usw. in Dateinamen
- werte den ReturnCode nach dem Packen aus 0 = erfolgreich > 0 nicht erfolgreich, mit Ausgabe des Fehlers
- warten bis Packvorgang abgeschlossen ist.
- Packen mit Splitting des Archives in 100 Mb, 500 Mb oder 1 GB

Nun zum eigentlichen Fehler :

in der DOKU zu RAR stand die Dateiliste soll eine einfache Textdatei sein, wo nur die Dateinamen bzw. Ordnernamen drin stehen.
Dies war leider nicht ganz richtig !!!

Die Liste (backup.lst) muss zu den Dateinamen(Ordnernamen) auch den vollständigen Pfad zu den Dateien(Ordnern) beinhalten.

z.B. falsch

Datei1.txt
Datei2.txt
Ordner1
Ordner2

richtig wäre :

LW:\Pfad\Datei1.txt
LW:\Pfad\Datei2.txt
LW:\Pfad\Ordner1
LW:\Pfad\Ordner2

hier nochmal ein Beispiel um Dateien zu packen:

Code:
paramPack := Format('a -ep1 -ms*.zip;*.rar;*.jpg "%s" "%s"',[RarFilename, '@'+DateiList]);
Erklärung der Parameter :
a : Dateien zum Archiv hinzufügen (Befehl)
-ep1 : Ausgangsverzeichnis aus den Dateinamen entfernen (Schalter)
-ms : *.zip;*.rar;*.jpg usw. Liste der Dateitypen die vom Packen ausgeschlossen werden (Schalter)
"%s" : Platzhalter für den Namen des Archives und der zweite ist der Platzhalter für den Namen der Dateiliste
@ : hiermit wird Rar.exe angewiesen in dieser Liste nach den Dateinamen zu suchen, welche gepackt werden sollen

zweites Beispiel : Packen mit Splitting

Code:
paramPack := Format('a -v100000k -ep1 -ms*.zip;*.rar;*.jpg "%s" "%s"',[RarFilename, '@'+DateiList]);
zusätzlicher Schalter

-v100000k : Teilarchive erstellen mit einer Größe vom 10000 Kilobytes (100 MB)

Ich hoffe, daß dies einigermaßen verständlich erklärt ist, wenn nicht bitte melden

Danke an alle , für Eure Hinweise und Tips

Gruß nachtstreuner
Alles wird gut -
  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:

Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2016 by Daniel R. Wolf