AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign d7zip / sevenzip.pas von mail2nnv - Fragen zur Funktionsweise, DictionarySize, ...
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von DieDolly · begonnen am 29. Apr 2023 · letzter Beitrag vom 9. Mai 2023
 
mytbo

Registriert seit: 8. Jan 2007
461 Beiträge
 
#30

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

  Alt 30. Apr 2023, 23:38
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.
Ich habe es mit der 32-Bit Version 22.01 der 7za.dll getestet. Wenn die DLL im Programmverzeichnis liegt, gebe keinen Bibliothekspfad an, mORMot sucht sie. Laut dieser Beschreibung sind für den CompressionLevel die Werte 1/3/5/7/9 zulässig. Bei mir funktioniert es. Du darfst es nicht mit den synthetischen Random-Testdaten versuchen, damit ist ab einem gewissen Level jeder Algorithmus überfordert.
Delphi-Quellcode:
var
  zipFileName: TFileName;
  libReader: I7zReader;
  libWriter: I7zWriter;
  content: RawByteString;
begin
  content := StringFromFile(MakePath([Executable.ProgramFilePath, 'mormot.lib.openssl11.pas']));
  zipFileName := MakePath([Executable.ProgramFilePath, 'TestDaten.7z']);

  libWriter := New7zWriter(fh7z);
  libWriter.SetCompressionLevel(7); // x Parameter (1/3/5/7/9)
  libWriter.AddBuffer('Lib\mormot.lib.openssl11.pas', content);
  libWriter.SaveToFile(zipFileName);
  libWriter := Nil;

  libReader := New7zReader(zipFileName);
  var libData: RawByteString := libReader.Extract('Lib\mormot.lib.openssl11.pas');
  if (Length(content) = Length(libData))
    and CompareMem(Pointer(content), Pointer(libData), Length(content)) then
  begin
    ShowMessage('Ok!');
  end;
Benchmark-Werte:
LevelDateigrößeLaufzeit [ms]
Original340.019 
154.03511
353.74211
548.81135
747.95942
947.95942

Bis bald...
Thomas

Geändert von mytbo (30. Apr 2023 um 23:50 Uhr) Grund: Laufzeit hinzugefügt
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:24 Uhr.
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