Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Probleme mit FlexCompress (3rd-Party) (https://www.delphipraxis.net/209495-probleme-mit-flexcompress-3rd-party.html)

Kishmet 14. Dez 2021 09:55

Probleme mit FlexCompress (3rd-Party)
 
Hallo zusammen,

ich benutze die FlexCompress Komponente von ComponentAce und habe leider gerade ein kleines Problem, ich hoffe mir kann jemand weiterhelfen?!

Folgender Code wird benutzt:

Code:
MyZipReader            := TFlexCompress.Create(myComponent);
MyZipReader.Name       := 'MyReader';
MyZipReader.FileName   := DataPath; //e.g. C:\Users\thisUser\AppData\Local\Temp\ThisTempFolder\ThisZip.zip
MyZipReader.OpenArchive(fmOpenRead);
MyZipReader.BaseDir    := BasePath; //e.g. C:\Users\[...]\ThisTempFolder\UnzipHere\
MyZipReader.CreateDirs := TRUE;
MyZipReader.ExtractCorruptedFiles := TRUE;
MyZipReader.ExtractFiles          := ('*.*');
MyZipReader.closeArchive;
Die Ordner und Dateien werden Ordnungsgemäß extrahiert und abgelegt.

ABER: Alle Dateien sind leer. 0KB. Kein Text kein gar nichts.

Vielleicht wichtig zu erwähnen an dieser Stelle: Das passiert nur mit "fremden" Archiven. Wenn das Archiv zuvor mit FlexCompress erstellt worden ist, habe ich keinerlei Probleme Daten auszulesen. (Gleicher Code)

Kennt sich zufälligerweiße jemand damit aus? Mir sind nämlich nun endgülig die Ideen ausgegangen was ich noch machen könnte.

KodeZwerg 14. Dez 2021 10:44

AW: Probleme mit FlexCompress (3rd-Party)
 
Hallo, vor Ewigkeiten nutzte ich auch FlexCompress weil man dort mit sehr wenig Aufwand sein eigenes Format erfinden kann.
Wenn ich mich richtig erinnere kann es nicht automatisch jede Zip methode, was zu 0 byte führt.
(FlexCompress nutzt das Zip Header Format aber schreibt mit eigener methode...)

Am besten mal durchtesten oder auf eine bessere Zip implementation umsteigen. (Ich kann da 7-Zip sehr empfehlen)

Auch würde ich testen wie es andersrum funktioniert, also FlexCompress Archiv mit regulärem Archiver entpacken (7-Zip, WinZip, WinRAR etc...)

Kishmet 14. Dez 2021 11:33

AW: Probleme mit FlexCompress (3rd-Party)
 
Hi KodeZwerg,

Danke dir für die Antwort. Also die Archive von FlexCompress mit was anderem öffnen ist nicht. Das habe ich aber immer auf die Kommpression geschoben. Aber das könnte natürlich auch zusammenhängen.

Hast du eine Idee wie ich mir darüber klarheit verschaffen könnte? Ein Umstieg ist leider nicht wirklich eine Option...

Kishmet 14. Dez 2021 12:07

AW: Probleme mit FlexCompress (3rd-Party)
 
Hallo nochmal,

schaut ganz so aus als ob du recht hast. Ein normales ZIP Format scheint nicht supported zu sein :shock: . Wenn ich das hier einfüge:

Code:
      try
        MyZipReader.TestFiles('*.*');
      except
        sleep(100);
      end;
bekomme ich direkt ne nette Fehlermeldung. Mein speicher sei voll oder das Format werde nicht unterstützt... Tja, Speicher ist nicht voll. Ich habe an ComponentAce mal noch eine Anfrage diesbezüglich laufen. Ich bin gespannt was die melden. Sieht so aus als würde ich es anders lösen müssen. Hab aber glaube ich schon einen Workaround gefunden mit Windows Boardmitteln. Mal sehen ob das klappt. Wenn ich was von ComponentAce höre melde ich mich nochmal.

KodeZwerg 14. Dez 2021 12:28

AW: Probleme mit FlexCompress (3rd-Party)
 
Hallo nochmal, ich an Deiner stelle würde da zweigleisig fahren in dieser Form ->

Eigene Archive mit einer eigenen Dateiendung (Beispiel: Dateiname.fca für FlexCompress Archive)

In einer vorab-Prüfung einen der zwei Wege folgen, FlexCompress (.fca) oder Zip-kompatibel (.zip) um dann eine der beiden implementationen anzusteuern.

Wiegesagt, zip kompatibel kann Delphi ja schon von Hause aus, also mal nach TZipFile suchen oder eben was qualitativ besseres wie 7-Zip nutzen ;-)


(Wenn Dateiendung unbedingt .zip bleiben muss, würde ich in eigenen Archiven eine 0 byte Datei automatisch mit ranbaumeln, "FlexCompress.fc" als Beispiel, dann halt öffnen, checken ob vorhanden, weg A oder B gehen)

Kishmet 14. Dez 2021 14:24

AW: Probleme mit FlexCompress (3rd-Party)
 
Hallo nochmal :-D

Ja für mich war es so ein Thema von, "Ok wir haben die Komponente also benutze ich Sie auch!". Ich fahre jetzt mit den Boardeigenen Mitteln von Delphi an der Stelle. Das hat natürlich auch sofort getan. Ist zwar an der Stelle unschön, weil ich beide Komponenten brauche aber nun gut. Es läuft und am Ende juckt es eh keinen...

Danke für die Zeit und Mühe ;-)

(PS: Falls ich von ComponentAce etwas höre werde ich das hier noch posten)

TBx 15. Dez 2021 08:10

AW: Probleme mit FlexCompress (3rd-Party)
 
Zitat:

Zitat von Kishmet (Beitrag 1499097)
"Ok wir haben die Komponente also benutze ich Sie auch!"

OT: Das habe ich mir schon lange abgewöhnt. Hat meist mehr Zeit und Geld verbrannt als es hätte einsparen können.
Ich fahre ja auch nicht mit dem alten Kinderrad meines Sohnes zur Arbeit, ich nehme lieber die Bahn ;-)

haentschman 15. Dez 2021 08:16

AW: Probleme mit FlexCompress (3rd-Party)
 
Zitat:

Kinderrad meines Sohnes zur Arbeit
[Kopfkino ON]
:lol:
[Kopfkino OFF]

DeddyH 15. Dez 2021 08:16

AW: Probleme mit FlexCompress (3rd-Party)
 
[OT]
Zitat:

Zitat von TBx (Beitrag 1499132)
Ich fahre ja auch nicht mit dem alten Kinderrad meines Sohnes zur Arbeit

Falls aber doch einmal, möchte ich ein Foto davon sehen :lol:[/OT]

Hunni 15. Dez 2021 08:33

AW: Probleme mit FlexCompress (3rd-Party)
 
Hallo,

wenn das so ist wie bei ZIPForge (ist auch von denen)

Delphi-Quellcode:
    ZipForge1.UnicodeFilenames := True;
    ZipForge1.FileName := FileOpenDialog1.FileName;
    ZipForge1.OpenArchive(fmOpenRead);
    ZipForge1.BaseDir := JamBrowseForFolder1.Path;
    ZipForge1.ExtractFiles('*.*');
    ZipForge1.CloseArchive;

Gruss
Hunni


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:28 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