AW: d7zip / sevenzip.pas von mail2nnv - Fragen zur Funktionsweise, DictionarySize, ..
Zitat:
Delphi-Quellcode:
Auf das Speichern mit SaveToFile musst du warten, bis Arnaud meinen Request eingepflegt hat. Schaue einfach bei GitHub auf die Commits. Als Behelf für die Zwischenzeit:
var zipFileName: TFileName := MakePath([Executable.ProgramFilePath, 'TestDaten.7z']);
var isFileAvailable: Boolean := FileExists(zipFileName); if isFileAvailable then libWriter := New7zWriter(zipFileName, fh7z) else libWriter := New7zWriter(fh7z);
Delphi-Quellcode:
Bis bald...
if isFileAvailable then
begin var stream: TFileStream := TFileStream.Create(zipFileName, fmOpenWrite or fmShareDenyNone); try libWriter.SaveToStream(stream); finally stream.Free; end; end else libWriter.SaveToFile(zipFileName); Thomas |
AW: d7zip / sevenzip.pas von mail2nnv - Fragen zur Funktionsweise, DictionarySize, ..
Mit mORMot Commit 5431 (c87fb80) funktioniert auch SaveToFile wie es soll:
Delphi-Quellcode:
Die Größe der gepackten Datei ist ca. 15MB. Das Packen mit Kompressionslevel 3 dauert kleiner 5 Sekunden. Es ist ein guter Kompromiss. Mit Level 5 schrumpft die Größe um ca. 18%, dafür dauert das Packen Faktor 3,5 länger.
procedure SaveFolderTo7Zip(const pmcFolder, pmcZipFileName: TFileName;
const pmcZipInternalDir: TFileName = ''; const pmcFileMask: TFileName = '*'; pmNewFile: Boolean = False; const pmOnProgress: T7zProgressCallback = Nil); var libWriter: I7zWriter; begin if not pmNewFile and FileExists(pmcZipFileName) then begin libWriter := New7zWriter(pmcZipFileName, fh7z) end else libWriter := New7zWriter(fh7z); libWriter.SetCompressionLevel(3); if Assigned(pmOnProgress) then libWriter.SetProgressCallback(pmOnProgress); libWriter.AddFiles(pmcFolder, pmcZipInternalDir, pmcFileMask, True); libWriter.SaveToFile(pmcZipFileName); end; var zipFileName: TFileName; begin zipFileName := MakePath([Executable.ProgramFilePath, 'TestMultiData.7z']); var timer: TPrecisionTimer; timer.Start; SaveFolderTo7Zip('c:\mORMot2\src\', zipFileName, 'mORMot_2023-05-01', '*.pas;*.inc', {pmNewFile=}True); SaveFolderTo7Zip('c:\mORMot2\src\', zipFileName, 'mORMot_2023-05-02', '*.pas;*.inc'); SaveFolderTo7Zip('c:\mORMot2\src\', zipFileName, 'mORMot_2023-05-03', '*.pas;*.inc'); SaveFolderTo7Zip('c:\mORMot2\src\', zipFileName, 'mORMot_2023-05-04', '*.pas;*.inc'); SaveFolderTo7Zip('c:\mORMot2\src\', zipFileName, 'mORMot_2023-05-05', '*.pas;*.inc'); ShowMessage(timer.Stop); end; Bis bald... Thomas |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:35 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