Einzelnen Beitrag anzeigen

Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#23

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

  Alt 30. Apr 2023, 23:33
Ich denke mit 7z ist das einfacher und der Code ist selbsterklärend-"er".
Die Aufrufe sind analog zur sevenzip.pas.
Auf jeden Fall (jedenfalls von meiner Seite her)
Ich habe es so versucht, jedoch ohne Erfolg beim umstellen des SetCompressionLevel, da ich daran schon scheitere habe ich die weiteren features nicht weiter angerührt.
Delphi-Quellcode:
procedure TfrmMain.btnCreateClick(Sender: TObject);
var
  zipFileName: TFileName;
  libWriter: I7zWriter;
begin
  zipFileName := MakePath([Executable.ProgramFilePath, 'TestDaten.7z']);
  if (cbFormat.ItemIndex <= 0) then
    cbFormat.ItemIndex := 7;
  libWriter := New7zWriter(T7zFormatHandler(cbFormat.ItemIndex), '7z.dll');
// libWriter := New7zWriter(fh7z, '7z.dll');
  libWriter.SetCompressionLevel(cbLevel.ItemIndex);
// libWriter.SetCompressionLevel(0); // von 0 bis 9 alle getestet, es kommt immer das gleiche raus
  libWriter.SetCompressionMethod(TZipCompressionMethod(cbMethod.ItemIndex));
// libWriter.SetCompressionMethod(mzLzma);
  libWriter.AddFile('7z.dll', '7z.dll');
  libWriter.SaveToFile(zipFileName);
  libWriter := Nil;
end;
(die auskommentierten zeilen zeigen was sich hinter meinen Indexen verbirgt)
Aber sehr positiv zu erwähnen, BZip2 funktioniert.
Da ich in der mormot.lib.win7zip.pas Datei leider keine Informationen finde auf welcher Bibliothek-Version es basiert habe ich es mit der aktuellen 64bit 7z.dll (22.1.0.0) getestet.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat