![]() |
ENtpacken von .rar
Hallo ich bin ein absolut blutiger Anfänger in delphi und fange gerade erst an.
Was ich wissen möchte wie entpacke ich ein .rar-Archiv. Beim suchen bin ich auch schon auf folgende komponnte gestoßen: ![]() Wie ich diese jedoch richtig bediene ist mir nicht bekannt. Wichtig wäre noch das es beim entpacken vorhanden Dateien (ohne Schreibschutz) überschreibt. Es wäre toll wenn mir jemand helfen könnte !!!!! |
Re: ENtpacken von .rar
Hi!
Herzlich Willkommen in der DP!!! Sicher, dass die richtige Sprache C++ ist? Falls nicht, kannst du das durch die Edit-Schaltfläche innerhalb von 24h nochmal ändern... Ciao, Frederic |
Re: ENtpacken von .rar
Nein da hab ich mich wohl verklickt tut mir leid.
|
Re: ENtpacken von .rar
Es wäre hilfreich wenn mir nur jemand sagen würde wie ich die komponente installiere.
|
Re: ENtpacken von .rar
Zitat:
|
DP-Maintenance
Dieses Thema wurde von "Matze" von "VCL / WinForms / Controls" nach "Sonstige Fragen zu Delphi" verschoben.
Keine Frage zur VCL. |
Re: ENtpacken von .rar
Danke hab ich gar nicht gesehen :oops:
OK installiert habe ichs wenn ich nun allerdings den Befehl
Delphi-Quellcode:
benutze bekomme ich den error
procedure TForm2.Button1Click(Sender: TObject);
begin RAR.OpenFile('archiv.rar'); end; Undeklarierter Bezeichner: 'OpenFile' was mache ich falsch muss ich etwas in die uses einfügen ? |
Re: ENtpacken von .rar
als was ist denn RAR deklariert und danach,wenns eine Klasse ist: wurde das Objekt schon erzeugt? sonst hagelts ne AV :D
Gruß Frank |
Re: ENtpacken von .rar
Ich gehe davon aus, dass deine Komponente RAR heißt?
Es ist auch keine gute Idee eine Komponente genauso zu nennen wie die Unit, in der sie deklariert ist... :roll: Benenne die Komponente richtig, oder lass zumindest den Standardnamen (RAR1 vermutlich) stehen, dann klappt das. So denkt Delphi vermutlich, dass du die Unit RAR meinst, und dadrin gibts kein OpenFile... |
Re: ENtpacken von .rar
Wenn mir jemand einfach den code zum entpacken geben könnte wäre es geil
Ich möchte "archiv.rar" in den Ordner "dateien" entpacken der Ordner ist im selben Ordner wie die Applikation Ich hatte es jetzt mit
Delphi-Quellcode:
probiert bekomme aber den Fehler:
TRAR.Extract('archiv.rar');
Nicht genügend wirkliche Parameter. Bitte Ich brauche HIIIILFFEEEE |
Re: ENtpacken von .rar
ohne zu testen nur anhand der doku:
Delphi-Quellcode:
//tipfehler korrigiert ;)
uses rar; //rar-unit einbinden
var rarfiile:TRar; begin rarfile:=TRar.create(self); //Objekt erstellen rarfile.OpenFile('C:\test.rar'); //Archiv öffnen rarfile.Extract('C:\temp\',true,nil); //entpacken rarfile.free;//objekt freigeben end; HTH Frank |
Re: ENtpacken von .rar
Bis auf einen kleinen Tippfehler suuuuuuuper danke man du hast mich gerettet
|
AW: ENtpacken von .rar
hi, das thema ist zwar etwa angestaubt, aber ich versuchs dennoch^^ (habe Delphi XE)
eigentlich ist diese komponente ja ziemlich einfach und schlicht, aber irgendwie komm ich da nicht weiter... ich habe jetzt folgendes:
Code:
Lt. der Doku der Unit müsste Rar1.openfile einen Boolwert zurückgeben (wenn alles glatt läuft mit dem archiv).
procedure TForm1.Button1Click(Sender: TObject);
begin RAR1:=RAR1.create(self); //Objekt erstellen if OpenDialog1.Execute then begin showmessage(OpenDialog1.FileName); if RAR1.OpenFile(OpenDialog1.FileName) then begin showmessage(BoolToStr(RAR1.OpenFile(OpenDialog1.FileName))); end; showmessage('Nach if:' + BoolToStr(RAR1.OpenFile(OpenDialog1.FileName))); end; RAR1.free; end; Mir wird hier: showmessage(BoolToStr(RAR1.OpenFile(OpenDialog1.Fi leName))); der Wert 0 zurück geliefert. Wenn ich diesen kleinen showmessage-test in die demo der unit einbaue, kommt wie in der doku beschrieben der wert TRUE. der aufbau der demo, weicht eigentlich außer ein paar befehle zum listbox adden nicht ab. woran könnte das denn liegen? in der uses ist "rar" vorhanden, genauso wie type RAR1: TRAR; mfg |
AW: ENtpacken von .rar
Du rufst RAR1.OpenFile(OpenDialog1.FileName) zweimal auf.
Das wäre so wie wenn du deine Haustür zweimal aufschliesen würdest und beim zweiten Mal lässt sich der Schlüssel nicht mehr drehen. In Delphi kann man ja lokale Variablen anlegen und man sollte davon auch regen Gebrauch machen.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var opened : Boolean; filename : string; begin if not OpenDialog1.Execute then Exit; filename := OpenDialog1.FileName; RAR1:=RAR1.create(self); //Komponente erstellen try opened := RAR1.OpenFile(filename); if not opened then ShowMessageFmt('Archiv %s konnte nicht geöffnet werden', [filename]); else ShowMessageFmt('Archiv %s geöffnet', [filename]); finally FreeAndNil(RAR1); end; end; |
AW: ENtpacken von .rar
die Zeile hier ist vermutlich auch falsch
Delphi-Quellcode:
("vermutlich", weil... für den Fall, dass du ne eigene Klasse mit dem Namen "RAR1" geschrieben hast, die von TRar erbt und dich nicht an die Konvention mit "T" gehalten hast!)
RAR1:=RAR1.create(self);
//----^ |
AW: ENtpacken von .rar
das ging aber schnell....
danke für die raschen antworten, aber leider bekomm ich mit sx2008's lösung nur "dass das archiv nicht geöffnet werden kann" dass ich 2 mal die Haustür aufschließe stimmt so nicht ganz, "if RAR1.OpenFile(OpenDialog1.FileName) then begin" wird ja gar nicht ausgelöst... das ist ja das problem! (Ergebnis ist ja 0 und nicht TRUE) rar1.create brauch ich nicht, hast recht, hab ja schon die komponente auf der Form.^^ Habs aus verzweiflung mal mit ausprobiert gehabt. hab jetzt mal das ausprobiert....
Delphi-Quellcode:
filepath = OpenDialog1.FileName wird auch korrekt wiedergegeben (bei mir: "C:\1\b.rar" das muss doch so stimmen :cry:)
procedure TForm1.Button1Click(Sender: TObject);
var filepath : string; begin if OpenDialog1.Execute then begin filepath := OpenDialog1.FileName; showmessage(filepath); if RAR1.OpenFile(filepath) then begin showmessage(BoolToStr(RAR1.OpenFile(filepath))); end; showmessage('Nach if:' + BoolToStr(RAR1.OpenFile(filepath))); end; RAR1.free; end; ich raffs einfach nicht^^ die demo läuft doch auch :roll: habt ihr Delphi XE und auch diese komponente "UnRAR Delphi component - Delphi component wrapper for UnRar.dll by Philippe Wechsler." ? |
AW: ENtpacken von .rar
Moin und ganz ruhig....
Du bekommst die Meldung 0 zurück, und ich denke, es ist ok.
Delphi-Quellcode:
Ich hab Dir mal eine Leerzeile in Deinen Code eingefügt. Vielleicht wird es jetzt schon klarer...
if RAR1.OpenFile(OpenDialog1.FileName) then begin
showmessage(BoolToStr(RAR1.OpenFile(OpenDialog1.FileName))); Was passiert: In der ersten Zeile öffnest Du mit dem RAR1 Objekt mit OpenFile eine Datei. Dieser Befehl hat Erfolg, denn er liefert Dir true zurück. Und genau dann wenn die if Bedingung wahr ist, also true, wird der Befehl hinter then ausgeführt (hier Dein begin - end Block). Und dort öffnest Du zum zweiten mal eine Datei, obwohl noch eine offen ist, und das gibt diesmal false bzw. 0 und die Message Box wird angezeigt. Mach doch mal folgendes:
Delphi-Quellcode:
if RAR1.OpenFile(OpenDialog1.FileName) then
ShowMessage("Erfolg!") else ShowMessage("Fehler!"); Ich hoffe, ich konnte helfen... VG Pixfreak |
AW: ENtpacken von .rar
Delphi-Quellcode:
= Fehler
procedure TForm1.Button1Click(Sender: TObject);
var filepath : string; begin if OpenDialog1.Execute then begin filepath := OpenDialog1.FileName; showmessage(filepath); if RAR1.OpenFile(filepath) then ShowMessage('Erfolg!') else ShowMessage('Fehler!'); end; RAR1.free; end; auch nur das hier gibt mir 0 zurück
Delphi-Quellcode:
= 0
procedure TForm1.Button1Click(Sender: TObject);
begin showmessage(BoolToStr(RAR1.OpenFile('C:\1\b.rar'))); RAR1.free; end; |
AW: ENtpacken von .rar
Ohne die Komponente zu kennen. Hat die vielleicht ein Error Property wo man mehr über den misslungenen Versuch erfahren kann?
Zugriffsrechte auf das Verzeichnis? VG Pixfreak |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz