Delphi-PRAXiS
Seite 2 von 6     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   d7zip / sevenzip.pas von mail2nnv - Fragen zur Funktionsweise, DictionarySize, ... (https://www.delphipraxis.net/212962-d7zip-sevenzip-pas-von-mail2nnv-fragen-zur-funktionsweise-dictionarysize.html)

dummzeuch 30. Apr 2023 16:51

AW: d7zip / sevenzip.pas von mail2nnv - Fragen zur Funktionsweise, DictionarySize, ..
 
Zitat:

Zitat von DieDolly (Beitrag 1521838)
Genau, ZIP ist OK. Da kann man auch die Kompressionsmethode aussuchen. Bei 7z hört es dann aber schon auf, das ist wie ich finde eine grundlegende Option, die JclCompression nicht bietet.
Ja, ein Wunschtraum. Eine funktionierende, aktuelle Schnittstelle, damit man die 7z.dll richtig nutzen kann.

Ich nehme mein Notebook mit in den Urlaub, aber ich glaube nicht, dass ich Zeit finden werde, mich damit zu beschäftigen.

KodeZwerg 30. Apr 2023 17:43

AW: d7zip / sevenzip.pas von mail2nnv - Fragen zur Funktionsweise, DictionarySize, ..
 
Ich bin auch die nächsten zwei Wochen im Urlaub und rein vom Kopf her denke ich mir das es wohl nicht verkehrt sein kann sich mit der CLI Anwendung anzufreunden, die bietet halt nur das an was es tatsächlich auch gibt.
Die 7-Zip SDK Header sehen abschreckend aus.
Hier im Forum glaube ich auch vor einer Ewigkeit mal was von einer Custom-Übersetzung gesehen zu haben.

DieDolly 30. Apr 2023 17:55

AW: d7zip / sevenzip.pas von mail2nnv - Fragen zur Funktionsweise, DictionarySize, ..
 
Die CLI-Anwendung hat sicher keinen dauerhaften Callback der über den Fortschritt Info gibt, oder?

mmw 30. Apr 2023 18:40

AW: d7zip / sevenzip.pas von mail2nnv - Fragen zur Funktionsweise, DictionarySize, ..
 
Hallo,
evtl. interessant

https://github.com/geoffsmith82/d7zip

Gruß

DieDolly 30. Apr 2023 18:44

AW: d7zip / sevenzip.pas von mail2nnv - Fragen zur Funktionsweise, DictionarySize, ..
 
sevenzip.pas 12 Jahre alt, noch älter als die von mir im ersten Beitrag genannte. Die im ersten Beitrag genannte sevenzip.pas zeigt bei Github an, dass sie nur 1 Jahr alt ist. Kann ja auch sein, aber der Inhalt ist im Prinzip auch nur von vor über 10 Jahren.

mmw 30. Apr 2023 18:50

AW: d7zip / sevenzip.pas von mail2nnv - Fragen zur Funktionsweise, DictionarySize, ..
 
Hallo,
stimmt. dafür sind die *.dll's aktueller

Gruß

himitsu 30. Apr 2023 18:51

AW: d7zip / sevenzip.pas von mail2nnv - Fragen zur Funktionsweise, DictionarySize, ..
 
Zitat:

Zitat von dummzeuch (Beitrag 1521837)
Ich hätte nämlich definitiv Interesse an einer funtionierenden Import-Unit für die 7z.dll,

Es ginge soger komplett rein, als OBJ in die EXE gelinkt.

DieDolly 30. Apr 2023 18:57

AW: d7zip / sevenzip.pas von mail2nnv - Fragen zur Funktionsweise, DictionarySize, ..
 
DLL in Exe als Resource kenne ich, aber was hat es mit Obj-Dateien aufsich? Sind Obj-Dateien leichter zu behandeln, braucht es dafür keinen komplizierten Wrapper mehr?

mytbo 30. Apr 2023 21:14

AW: d7zip / sevenzip.pas von mail2nnv - Fragen zur Funktionsweise, DictionarySize, ..
 
Zitat:

Zitat von dummzeuch (Beitrag 1521837)
Ich hätte nämlich definitiv Interesse an einer funtionierenden Import-Unit für die 7z.dll, da ich nach meinem Urlaub damit große Dateien ein- und auspacken wollte, und zwar idealerweise mit bzip2.

Wenn es auch die mORMot Unit mormot.lib.win7zip sein darf, dann zum Beispiel so:
Delphi-Quellcode:
uses
  mormot.core.base,
  mormot.core.text,
  mormot.core.test,
  mormot.core.os,
  mormot.lib.win7zip;

var
  zipFileName: TFileName;
  libReader: I7zReader;
  libWriter: I7zWriter;
  content: RawByteString;
begin
  content := TSynTestCase.RandomIdentifier(1 shl 12);
  zipFileName := MakePath([Executable.ProgramFilePath, 'TestDaten.7z']);

  libWriter := New7zWriter(fh7z); // fhBZip2
  libWriter.SetCompressionLevel(3); // x Parameter (1/3/5/7/9), default 5
  libWriter.AddBuffer('Daten\TestDaten.dat', content);
  libWriter.SaveToFile(zipFileName);
  libWriter := Nil;

  libReader := New7zReader(zipFileName);
  var libData: RawByteString := libReader.Extract('Daten\TestDaten.dat');
  if (Length(content) = Length(libData))
    and CompareMem(Pointer(content), Pointer(libData), Length(content)) then
  begin
    ShowMessage('Ok!');
  end;
Bis bald...
Thomas

DieDolly 30. Apr 2023 21:17

AW: d7zip / sevenzip.pas von mail2nnv - Fragen zur Funktionsweise, DictionarySize, ..
 
Ich denke mit 7z ist das einfacher und der Code ist selbsterklärend-"er".


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:12 Uhr.
Seite 2 von 6     12 34     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz