Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Dynamische Arrays öffnen (https://www.delphipraxis.net/68876-dynamische-arrays-oeffnen.html)

programmierer 7. Mai 2006 10:08


Dynamische Arrays öffnen
 
Hi Leuz!
Ich brauch mal wieder eure Hilfe. Und zwar habe ich bei DSDT unter Tipps & Tricks eine Anleitung gefunden, wie ich dynamische Arrays speicher. Leider gab es keinen Hinweis dazu, wie ich diese wieder öffne! Evil :?:
Könnte mir das mal bitte jemand erklären :evil:

Sharky 7. Mai 2006 10:09

Re: Dynamische Arrays öffnen
 
Dafür müsste man vorher wissen wie Du sie gespeichert hast ;-)

programmierer 7. Mai 2006 10:20

Re: Dynamische Arrays öffnen
 
Nach genau dieser Anleitung!

Sharky 7. Mai 2006 10:37

Re: Dynamische Arrays öffnen
 
Zitat:

Zitat von programmierer
Nach genau dieser Anleitung!

Du musst das ganze eigentlich nur umdrehen.
Als erstes liest Du die Datei wieder in den Stram (nicht fmCreat sondern fmOpenRead).
Dann setzt Du die Länge des Arrays auf stream.size DIV Größe pro Eintrag (f.size DIV SizeOf(integer).
Jetzt nur doch die Daten in einer Schleife aus dem Stream in das Array lesen.

SirThornberry 7. Mai 2006 10:40

Re: Dynamische Arrays öffnen
 
anzumerken ist das man bei dem Beispiel auch auf die schleife verzichten kann und das gesamte Array in einem Rutsch schreiben kann (da es ein dynamisches Array ist, muss dies wie bei Strings geschehen - dereferenzieren des Arraypointers (Array[0]))

inherited 7. Mai 2006 10:45

Re: Dynamische Arrays öffnen
 
So ähnlich öffnest du es auch wieder.
Allerdings solltest du noch mit abspeichern ie groß dein array ist, zb so:
Delphi-Quellcode:
  length:=high(a);
  f.write(length, SizeOf(length));
mit
Delphi-Quellcode:
  f := TFileStream.Create('c:\test.dat', fmOpenRead);
öffnest du die datei,
mit
Delphi-Quellcode:
  f.Read(length, SizeOf(length));
liest du(wenn du die größe des arrays am anfang gespeicert hast) die größe aus

und mit
Delphi-Quellcode:
  f.read(Array[i], SizeOf(Array[i])
liest du die datei aus

Den rest(in eine for-schleife packen...) darfst du (aufgrund meiner unendlichen Güte :P ) selbst machen

€dit: funzt der rote kasten nich mehr?


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:10 Uhr.

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