7zip Delphi-Wrapper

Antworten
uwetr
Beiträge: 2
Registriert: Do 18. Jun 2015, 12:52

7zip Delphi-Wrapper

Beitrag von uwetr »

Hallo,

ich würde gerne ein paar 7zip-Archive mittels Lazarus auspacken.
Am liebsten würde ich dazu die 7zip.dll benutzen für die es einen Delphi-Wrapper unter https://code.google.com/p/d7zip/downloads/list gibt.

Nun bin ich aber absoluter Lazarus-Neuling und hab keinerlei Ahnung wie/ob man den Delphi-Wrapper in Lazarus verwenden kann ... :?:

Kann/mag mir hier jemand bei der Aufgabenstellung helfen?


Viele Grüße,
Uwe

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: 7zip Delphi-Wrapper

Beitrag von Warf »

Schon mal versucht einfach unter unit den Switch

Code: Alles auswählen

{$MODE DELPHI}
hinzuzufügen?

wenn nicht versuche mal Lazarus Menü->Werkzeuge->Delphi Umwandlung->Delphi in Lazarus Unit umwandeln (oder so)

keine Ahnung wie gut das funktioniert, aber kannst es mal ausprobieren, wenn das reicht muss man sich nicht ewig lang hinsetzen und das übersetzen

knight
Beiträge: 802
Registriert: Mi 13. Sep 2006, 22:30

Re: 7zip Delphi-Wrapper

Beitrag von knight »

Schaue dir doch mal die Quelltexte von diesem Programm an: https://de.wikipedia.org/wiki/PeaZip

knight

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: 7zip Delphi-Wrapper

Beitrag von Michl »

uwetr hat geschrieben:Am liebsten würde ich dazu die 7zip.dll benutzen für die es einen Delphi-Wrapper unter https://code.google.com/p/d7zip/downloads/list gibt.
Ich habe zwar überhaupt keine Ahnung davon, habe es aber mal intuitiv probiert und es funktioniert tadellos (Mode Delphi und eine offene Klammer im Quellcode entfernt):

Code: Alles auswählen

procedure TForm1.Button1Click(Sender: TObject);
var
  Archive: I7zInArchive;
begin
  OpenDialog1.Filter:='All Files|*.7z';
  if OpenDialog1.Execute then begin
    Archive:=CreateInArchive(CLSID_CFormat7z);
    Archive.OpenFile(OpenDialog1.FileName);
    if SelectDirectoryDialog1.Execute then
      Archive.ExtractTo(IncludeTrailingPathDelimiter(SelectDirectoryDialog1.FileName));
  end;
end;
(Heaptrc meckert nicht, Files werden entpackt)

PS: ich finde Crossposts unschön!

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: 7zip Delphi-Wrapper

Beitrag von MAC »

Alternative zum einbinden der dll,
Es gibt auch eine Komandozeilenversion von 7zip (7za.exe) mit der man einfaches packen und entpacken kann.

http://wiki.freepascal.org/Executing_External_Programs

http://www.7-zip.de/download.html (7-zip extra)

Code: Alles auswählen

Signatur := nil;

uwetr
Beiträge: 2
Registriert: Do 18. Jun 2015, 12:52

Re: 7zip Delphi-Wrapper

Beitrag von uwetr »

Hi,

Warf hat geschrieben:Schon mal versucht einfach unter unit den Switch

Code: Alles auswählen

{$MODE DELPHI}
hinzuzufügen?

wenn nicht versuche mal Lazarus Menü->Werkzeuge->Delphi Umwandlung->Delphi in Lazarus Unit umwandeln (oder so)

keine Ahnung wie gut das funktioniert, aber kannst es mal ausprobieren, wenn das reicht muss man sich nicht ewig lang hinsetzen und das übersetzen


ähhhh, das war ja echt einfach ;-)
Funktioniert prima!

Vielen Dank an Alle für Eure Hilfe, speziell an Michl!
(undundund: cross post: ich wusste nicht das die beiden Communities so eng verzahnt sind ;-) )

Gruß,
Uwe

Antworten