Autor Beitrag
Draco-WdH
Hält's aus hier
Beiträge: 8

Win XP Coorp / Win 98 SE / Win 98
Delphi 7 Enterprise
BeitragVerfasst: Mo 25.04.05 16:22 
Hallo,

Ich habe ein Problem, ich habe noch nie mit DLLs gearbeitet und möchte gern wissen wie ich mit
der UnRAR.dll und der DFunRAR eine Datei (Rar-beste Speicherung) einfach komplett entpacken kann
und alles überschreiben lassen kann (1 Datei in der RAR).

Vielen Dank für die Hilfe ^^
fvolk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 203

Win XP (Home & Pro)
Delphi 2005 Pers
BeitragVerfasst: Mo 25.04.05 18:07 
Bei dem Download ist soweit ich weiß, ein komplettes Demoprojekt dabei. Außerdem findest du auf community.borland.co...0,1410,27755,00.html eine kleine Erklärung samt Header-Übersetzung.

_________________
Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist überzeugt, dass er genug davon habe.
(René Descartes)
Draco-WdH Threadstarter
Hält's aus hier
Beiträge: 8

Win XP Coorp / Win 98 SE / Win 98
Delphi 7 Enterprise
BeitragVerfasst: Mo 25.04.05 18:28 
Danke das hilft etwas aber da steht nichts übers Entpacken nur öffnen, schließen, ...
Also ich möchte nur eine einzige Funktion wo ich eben nur RAR-Datei-Ort, Zielverzeichnis
und überschreiben true oder false setzen kann, ohne viel aufwand eben am besten nur die
Funktion und den Aufruf in einer Zeile.
fvolk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 203

Win XP (Home & Pro)
Delphi 2005 Pers
BeitragVerfasst: Mo 25.04.05 18:42 
Dann hilft dir das hier wahrscheinlich: www.delphi-total.de/tutorials/rar/
Deine Funktion musst du dir dann aber auch selbst basteln.

_________________
Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist überzeugt, dass er genug davon habe.
(René Descartes)
Draco-WdH Threadstarter
Hält's aus hier
Beiträge: 8

Win XP Coorp / Win 98 SE / Win 98
Delphi 7 Enterprise
BeitragVerfasst: Mo 25.04.05 18:47 
Tut mir leid wenn ich das nicht verstehe aber da steht auch nichts von unRaR nur Open, read Header, Prosess, SetChange, set Prosess, close.

Kannst du mir dabei genauer helfen? Ich habe noch nie eine Funktion selbst gemacht geschweige denn mit dlls gearbeitet, tut mir leid, bin noch relativ unerfahren mit Pascal^^
fvolk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 203

Win XP (Home & Pro)
Delphi 2005 Pers
BeitragVerfasst: Mo 25.04.05 20:46 
Delphi-Total Tutorial hat folgendes geschrieben:
Dieser Artikel beschreibt die Dekomprimierung mit der UnRAR Bibliothek von Eugene Roshal...


Oha, da hast du dir dann aber auch wirklich was vorgenommen, wenn du noch nichts mit eigenen Funktionen und DLLs gemacht hast.

Am besten wird es sein, wenn du dich erstmal mit Funktionen auseinandersetzt: www.dsdt.info/grundl...sprache/prozfunk.php

Wenn du das verstanden hast, befasst du dich mit DLLs (Achtung, das ist ein gewaltiger Sprung): www.delphi-total.de/tutorials/dlls/

Und danach kommst du sicherlich auch mit der Unrar.dll und den entsprechenden Headern zurecht. Ich kann nur wiederholen, dass du dir da ziemlich was vorgenommen hast. (Bis ich meine erste DLL geschrieben/genutzt hatte, waren vier Jahre vergangen.)

_________________
Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist überzeugt, dass er genug davon habe.
(René Descartes)
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 25.04.05 20:55 
Darf ich etwas einwenden? Das Wissen um DLLs mag hilfreich sein. In dem Fall ist es aber unnötig. Es reicht tatsächlich aus, sich mal das mitgelieferte Delphi-Beispiel anzusehen und ein wenig darüber nachzudenken.

Die Schlüsselfunktion heißt "RARProcessFile". Und genau vor ihr wird die gewünschte Operation in einer Variable festgelegt, die auch so heißt: "Operation". Ich bin schon der Ansicht, dass man sich mit etwas Englischkenntnissen unter RAR_EXTRACT etwas vorstellen kann. :roll:
Abgesehen davon: Wenn man das Beispiel mal kompiliert und startet, dann zeigt es einem die Syntax an. Diese Syntax findet man logischerweise im Programm wieder. Als Tipp:
Zitat:
ausblenden Delphi-Quelltext
1:
procedure OutHelp;					

Demzufolge hat man doch damit einen guten Ansatzpunkt, den Programmablauf anhand der zu übergebenden Parameter zu verfolgen.

Sorry, wenn ich diese "Ich kapier´s nicht"-Haltung nicht nachvollziehen kann. Aber das ist wohl auch der Beweis, dass mein Hirn (obwohl älter) besser genutzt wird.
Draco-WdH Threadstarter
Hält's aus hier
Beiträge: 8

Win XP Coorp / Win 98 SE / Win 98
Delphi 7 Enterprise
BeitragVerfasst: Mi 27.04.05 16:56 
um mal auszuschließen das ich das Beispiel verwenden könnte, fehlgeschlagen es kann nicht mal eine RAR geschweige denn eine Zip öffnen und genau so wenig entpacken, hat niemand eine Komponente die funktioniert? vielleicht auch ohne DLL ? die DFunRAR funktioniert jedenfals NICHT, wenn ich mit dem Beispiel eine Datei öffnen will ist sie leer und was soll denn dann aus dem Archiv entpackt werden? Naja ich hoffe ich bekomme dazu etwas hilfe :cry:
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 27.04.05 17:32 
user profile iconDraco-WdH hat folgendes geschrieben:
um mal auszuschließen das ich das Beispiel verwenden könnte, fehlgeschlagen es kann nicht mal eine RAR geschweige denn eine Zip öffnen [...]

Eine ZIP-Datei entpacken? Du erwartest von einer kostenlosen UnRar.dll eindeutig zuviel. Sorry, aber für andere Formate brauchst du eben WinRAR oder andere Packer. Die DLL kann nur RAR entpacken.

Zitat:
[...] und genau so wenig entpacken, [...]

Doch kann sie. Ich hatte vor Jahren selbst mal ein Programm geschrieben, das mit der DLL Dateien entpackt hat. Das ging problemlos. Ich gucke mal ob ich das noch irgendwo finde. Aber wie dem auch sei, wenn ich ehrlich sein darf: Dein Problem ist, dass du schnell zum Ziel kommen willst. Das ist an sich nicht falsch, aber ohne selbst was dazu beizutragen? :gruebel: Wenn du eine fertige Unrar-Komponente suchst, dann hätte ich an deiner Stelle schon längst Google bemüht. Ansonsten kann es passieren, dass du hier im Forum etwas länger wartest, denn nicht jeder hat die gleichen Sorgen wie du; nicht jeder interessiert sich vllt. für dein Problem. Und einige, wie ich, sagen: Was willst du? Das Beispielprogramm, das bei der Unrar.dll dabei ist, zeigt dir den genauen Ablauf, und es funktioniert!
Draco-WdH Threadstarter
Hält's aus hier
Beiträge: 8

Win XP Coorp / Win 98 SE / Win 98
Delphi 7 Enterprise
BeitragVerfasst: Do 28.04.05 16:31 
ich habe das Beispielprojekt von DF unRAR getestet und keine einzige der Dateien, also RaR's wurde überhaupt geöffnet und entpackt da liegt mein Problem leider und bei Google finde ich leider nur DF unRAR was nicht funktioniert und die unRAR.dll die ich nicht verstehe weil ich nur einfach Dateien entpacken möchte, nicht einen neuen Entpacker erfinden will^^. Ich wäre für jede noch so kleine Hilfe sehr, sehr dankbar!
fvolk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 203

Win XP (Home & Pro)
Delphi 2005 Pers
BeitragVerfasst: Do 28.04.05 18:57 
Ruf' aus deinem Projekt heraus dir unrar.exe mit entsprechenden Parametern auf. Sicherlich nicht die schönste Lösung, aber sie ist einfach und funktioniert.

Programm aufrufen: Suche in: Delphi-Forum, Delphi-Library SHELLEXECUTE Suche im MSDN SHELLEXECUTE
Unrar.exe Download: www.winrar.de (Downloads, Tools)
Unrar.exe Parameter: unrar -?

_________________
Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist überzeugt, dass er genug davon habe.
(René Descartes)
Draco-WdH Threadstarter
Hält's aus hier
Beiträge: 8

Win XP Coorp / Win 98 SE / Win 98
Delphi 7 Enterprise
BeitragVerfasst: So 01.05.05 18:43 
So habe ich das biher jetzt gemacht!

DFunRar1.FileName := Edit1.Text;
DFunRar1.Directory := Edit2.Text;
DFunRar1.Extract;

und Delphi stürzt bei diesem Aufruf komplett ab!

P.s. weiß jetzt warums nicht ging, also bei dem Beispiel von DFunRar, die unrar.dll war nicht mal
im Ornder somit konnte er auch nicht mal die Rars öffnen^^
Draco-WdH Threadstarter
Hält's aus hier
Beiträge: 8

Win XP Coorp / Win 98 SE / Win 98
Delphi 7 Enterprise
BeitragVerfasst: Do 05.05.05 10:59 
wo liegt den dort der Fehler, bitte helft mir wenigstens einer *heul*
Ich möchte nur eine fest angegebene RAR entpacken, undzwar alles was darin vorhanden ist
und nicht extra eine Liste auslesen lassen und die gesammte Liste entpacken lassen, danke
*verzweifelt bald* :cry:
Draco-WdH Threadstarter
Hält's aus hier
Beiträge: 8

Win XP Coorp / Win 98 SE / Win 98
Delphi 7 Enterprise
BeitragVerfasst: Do 05.05.05 11:44 
So folgendes passiert:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
  dfUnRar.FileList.Clear;
  dfUnRar.FileName := 'C:\abc123.rar';    //abc123.rar = Verzeichnis
  dfUnRar.FileList.Add('Datei_in_rar.*'); //zu entpackende Datei
  dfUnRar.OverrideEvent := OR_EVENT;
  dfUnRar.Directory := 'C:\';              //Ordner wohin es entpackt werden soll
  dfUnRar.Mode := DFRAR_EXTRACT;
  dfUnRar.Extract;


Nur leider entpackt sich dort nichts hin, was fehlt dort noch kann mir jemand helfen bitte???

Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt.
puddy2@web.de
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Mi 27.06.07 21:12 
Ich bin mir jetzt nicht sicher, ob du die Lösung noch brauchst, aber ich würds mal mit dem direkten Pfad probieren.

Also mit folgendem:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
//==Entpacken mit der UnRAR DLL==
dfUnRar.FileList.Clear;
dfUnRar.FileName := 'C:\abc123.rar';      //Quellverzeichnis
dfUnRar.FileList.Add('Datei_in_rar.*');   //zu entpackende Datei
dfUnRar.OverrideEvent := OR_EVENT;
dfUnRar.Directory := 'C:\DATEINAME';     //Zielverzeichnis
dfUnRar.Mode := DFRAR_EXTRACT;
dfUnRar.Extract;
Blamaster
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 164



BeitragVerfasst: So 02.09.07 20:26 
Hab nochmal ne Frage zu der ganzen geschichte, auch wenn es schon etwas her ist.

Gibt die unrar.dll eigentlich auch einen Fehler zurück wenn das passwort das man zum entpacken eingibt falsch ist ?