Autor |
Beitrag |
Nano-Ware
      
Beiträge: 394
Erhaltene Danke: 7
|
Verfasst: Sa 27.08.11 19:07
Hey,
ich würde gern eine *jar Datei entpacken. Die Datei besteht aus vielen Ordnern und Dateien. Ich würde jetzt gern die gesammte *.jar entpacken eine Datei löschen und sie am Ende wieder packen. Gibt es da eine einfache Möglichkeit, ich hab nämlich mit Streams und Dateizugriff nicht sehr viele Erfahrungen..
Danke
|
|
HeftCD
      
Beiträge: 91
Erhaltene Danke: 9
Win2k, WinXP, Win7, Win8
Delphi 3 Pro, Delphi 5, Delphi 7, Turbo Delphi, BC1
|
Verfasst: So 28.08.11 00:26
mhh, mach doch einfach sowas
(Pseudocode!!)
Zitat: |
- Shellexecute ('"WinRAR x bpla.jar "C:\User\Temp\meineJar\"');
- open ('C:\User\Temp\meineJar\gemwünschteDatei.txt');
- save (dito);
- Shellexecute ('WinRAR a bpla2.jar "C:\User\Temp\meineJar\*.*"');
|
die Semikola u. Gänsefüßchen bei der Shellexcute sind wichtig, damit der komplette PFad mit etvl. Leerzeichen gefunden wird
gleiches geht in etwa auch mit 7zip
|
|
Nano-Ware 
      
Beiträge: 394
Erhaltene Danke: 7
|
Verfasst: So 28.08.11 00:34
Das fällt leider weg. Ich möchte nämlich ohne Extratools arbeiten, die ich nicht so ohne Weiteres mitliefern kann. Ich muss nämlich davon ausgehen, dass der PC des Benutzers nicht über die Software verfügt. Ich habe mal gelesen, dass die JAR genause gepackt ist wie eine *.zip vielleicht hilft das ja beim Lösen des Problems.
|
|
Martok
      
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: So 28.08.11 03:26
Eben: du suchst also eigentlich eine Zip-Komponente. Wenn du DLLs mitliefern kannst, finden sich diese wie Sand am Meer; wenns ohne gehen soll, verwende ich gerne KAZip (keine Ahnung ob die noch gepflegt werden).
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
Nano-Ware 
      
Beiträge: 394
Erhaltene Danke: 7
|
Verfasst: So 28.08.11 10:11
Mir währe es lieber, wenn ich ohne DLLs arbeiten könnte. Ist deine KaZip Komponente werbefrei und darf bei nichtkommernziellen Projekten mitgeliefert werden ohne, dass bei jedem Start ne Messagebox kommt, in der steht, dass ich diese Komponente verwende?
|
|
rushifell
      
Beiträge: 306
Erhaltene Danke: 14
|
Verfasst: So 28.08.11 10:28
Nano-Ware hat folgendes geschrieben: | Ist deine KaZip Komponente werbefrei und darf bei nichtkommernziellen Projekten mitgeliefert werden ohne, dass bei jedem Start ne Messagebox kommt, in der steht, dass ich diese Komponente verwende? |
Ja ist sie. Ich kann die Komponente auch nur empfehlen. Wenn ich mich richtig erinnere, muss man sie bei entsprechender Anpassung nicht einmal installieren, bin mir da aber nicht mehr ganz sicher. Entpackt wird jedoch, soweit ich weiss, nur in temporäre Dateien, nicht im Speicher.
Wobei ich gerade sehe:
Zitat: | KAZip is totaly stream oriented so you can deal with data only in memory without creating temporary files |
Bei Torry gibts die noch zum Download. Ist zwar von 2005, aber bei den Pack-Algorithmen ändert sich ja normalerweise nichts.
|
|
Nano-Ware 
      
Beiträge: 394
Erhaltene Danke: 7
|
Verfasst: So 28.08.11 10:35
Ich hab mir die Komponente mal geladen. Die Demo sieht echt vielversprechend aus. Es ist außerdem auch nicht schlimm, dass die Komponente temporäre Dateiein braucht, denn ich habe eh vor, die *.jar zu entpacken und am ende verändert wieder zu packen.
Danke schonmal
|
|
HeftCD
      
Beiträge: 91
Erhaltene Danke: 9
Win2k, WinXP, Win7, Win8
Delphi 3 Pro, Delphi 5, Delphi 7, Turbo Delphi, BC1
|
Verfasst: So 28.08.11 10:49
Du könntest aber auch die 7zip Commandline mitliefern:
7z.exe
das steht auch in den Lizenzen drin.
Mußt halt nur irgendwo drauf hinweisen, daß er 7zip programmiert hat und nicht Du, wenn ich mich recht erinnere.
Und 7z entpackt eben überall hin, - wie WinRAR.
syntax is'n bißchen anders, darum hab ich WinRAR gewählt.
wußte ja nicht, daß Du das weitergeben möchtest.
gut - WinRAR darfste nur als Shareware beipacken.(obwohl, da ... ob man das so mit-distributieren darf ... weiß ich nich)
Aber 7z darfste, soweit ich das erinnere mit-beipacken.
|
|
Nano-Ware 
      
Beiträge: 394
Erhaltene Danke: 7
|
Verfasst: Di 30.08.11 17:50
Ich hab eine andere Zip Komponente gefunden. Unter Lizens steht das untenstehende. Muss ich in meinem Programm die Verwendung der Komponente aufzeigen und was muss ich sonst noch beachten? (Die Komponente heißt Abbrevia und ist Open-Source)
(* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is TurboPower Abbrevia
*
* The Initial Developer of the Original Code is
* TurboPower Software
*
* Portions created by the Initial Developer are Copyright (C) 1997-2002
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* ***** END LICENSE BLOCK ***** *)
|
|
wulfskin
      
Beiträge: 1349
Erhaltene Danke: 1
Win XP
D5 Pers (SSL), D2005 Pro, C, C#
|
Verfasst: Fr 09.09.11 11:55
Hallo Nano-Ware,
nein, musst du nicht ( MPL-FAQ Punkt 6), da du den Source-Code der MPL-Dateien ja nicht verändert hast.
Meine persönliche Meinung ist jedoch, dass man durchaus dankenswert erwähnen kann, dass man eine externe Komponente verwendet hat.
Grüße
Hans-Peter
_________________ Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
|
|