Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TZipFile und TMemoryStream (https://www.delphipraxis.net/206898-tzipfile-und-tmemorystream.html)

himitsu 9. Feb 2021 04:28

AW: TZipFile und TMemoryStream
 
Ja, hatte vergessen, dass die ZStreams nur "durchreichen"
und nicht "selbst" auf 'nem MemoryStream aufbauen, obwohl alles im RAM bleibt.

Was aber geht, ist die Variante mit den TBytes
Delphi-Quellcode:
procedure Read(const FileName: string; out Bytes: TBytes); overload;

und dann die TBytes zu PFussballMatrix casten. (dynamische Arrays haben einen Pointer drin, welcher aus den Datenanfang zeigt)

Delphi-Quellcode:
var
  Bytes: TBytes;
begin

  MyZip.Read(IndexOrFilename, Bytes);
  //Assigned(Length(Bytes) = SizeOf(TFussballMatrix), '...');
 
  xxx := PFussballMatrix(Bytes)^[x, y].Eg;

end;

Uwe Raabe 9. Feb 2021 08:18

AW: TZipFile und TMemoryStream
 
Zitat:

Zitat von himitsu (Beitrag 1482550)
Was aber geht, ist die Variante mit den TBytes
Delphi-Quellcode:
procedure Read(const FileName: string; out Bytes: TBytes); overload;

und dann die TBytes zu PFussballMatrix casten.

Was am Ende aber auf dasselbe raus kommt, wie ein Read mit dem Stream - genau das passiert nämlich auch in dem TBytes-Overload.

himitsu 9. Feb 2021 09:07

AW: TZipFile und TMemoryStream
 
Was intern passiert ist doch aber egal. (außer es ist extrem grausam langsam/hungrig)
Nur die Schnittstelle zum Benutzer/Programmieret bemerkt man. :angle:

Willie1 9. Feb 2021 11:00

AW: TZipFile und TMemoryStream
 
Hallo Freunde, danke für eure Mitarbeit.
Ich breche die Sache ab, Ich habe festgestellt, dass Zip-Archive, die ich mit TZipFile erweitert habe, danach nicht mehr lesbar sind. Winrar kann nur einen Teil der darin enthaltenen Dateien reparieren. (Alle Dateien im Archiv werden angezeigt, sind aber zum Teil nicht lesbar).Hier im Forum hatten auch schon andere Mitglieder*innen den Verdacht geäußert, das TZipFile nicht sauber arbeitet. Das sehe ich jetzt bestätigt.
Meine Idee war, dass der Anwender mit nur einer Datei arbeiten kann, statt sich mit 100 Dateien herum schlagen zu müssen.
Es ging um das Array FussballMatrix.
Gruß Willie.

Nachtrag: Bei meinem Testprogramm hatte es mit TZipFile funktioniert!


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:41 Uhr.
Seite 2 von 2     12   

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