7zip Delphi-Wrapper

7zip Delphi-Wrapper

Beitragvon uwetr » 18. Jun 2015, 12:24 7zip Delphi-Wrapper

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
uwetr
 
Beiträge: 2
Registriert: 18. Jun 2015, 11:52

Beitragvon Warf » 18. Jun 2015, 13:25 Re: 7zip Delphi-Wrapper

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
Warf
 
Beiträge: 616
Registriert: 23. Sep 2014, 16:46
Wohnort: Aachen
OS, Lazarus, FPC: Mac OSX 10.11 | Win 10 | FPC 3.0.0 | L trunk | 
CPU-Target: x86_64, i368, ARM
Nach oben

Beitragvon knight » 18. Jun 2015, 13:28 Re: 7zip Delphi-Wrapper

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

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

Beitragvon Michl » 18. Jun 2015, 14:56 Re: 7zip Delphi-Wrapper

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; 
Michl
 
Beiträge: 2169
Registriert: 19. Jun 2012, 11:54
OS, Lazarus, FPC: Win7 Laz 1.7 Trunk FPC 3.1.1 Trunk | 
CPU-Target: 32Bit/64bit
Nach oben

Beitragvon MAC » 18. Jun 2015, 15:01 Re: 7zip Delphi-Wrapper

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;
MAC
 
Beiträge: 770
Registriert: 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2) | 
CPU-Target: 32Bit
Nach oben

Beitragvon uwetr » 18. Jun 2015, 22:29 Re: 7zip Delphi-Wrapper

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
uwetr
 
Beiträge: 2
Registriert: 18. Jun 2015, 11:52

• Themenende •

Zurück zu Windows



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried