Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi dyn. Array speichern? was schnelleres als for schleife? (https://www.delphipraxis.net/107432-dyn-array-speichern-schnelleres-als-schleife.html)

snow 27. Jan 2008 19:43


dyn. Array speichern? was schnelleres als for schleife?
 
Hallo

ich will ein dynamisches array of byte speichern.

natürlich könnte ich jedes element in einer for 0 to high(array) schleife auslesen und abspeichern. Ich würde aber gern das array einfach so in die datei schreiben.


leider wird dass mit
Delphi-Quellcode:
Blockwrite(dat,array,sizeof(array));
nicht klappen, oder?

so weit ich weis liefert sizeof(array) nur die länge des Pointers.

gibt es da eine methode, die das array in ein variable mit n-Bytes umwandelt?

PS:// ich frage eigendlich nur, weil ich vermute, dass eine for schleife bei großen arrays zu lange dauern würde?

Gruß snow

Dax 27. Jan 2008 19:44

Re: dyn. Array speichern? was schnelleres als for schleife?
 
Delphi-Quellcode:
Blockwrite(dat,array[0],length(array));
Allerdings musst du die Länge auch noch irgendwie speichern, sonst kannst du das Array nicht mehr rekonstruieren.

snow 27. Jan 2008 19:46

Re: dyn. Array speichern? was schnelleres als for schleife?
 
Zitat:

Allerdings musst du die Länge auch noch irgendwie speichern, sonst kannst du das Array nicht mehr rekonstruieren.
wird in einem abschnitt am anfang der datei gemacht.

gruß snow

sirius 27. Jan 2008 19:52

Re: dyn. Array speichern? was schnelleres als for schleife?
 
Und die Länge des Arrays sollte man noch mit der Größe der Elemente multiplizieren.

Dax 27. Jan 2008 19:53

Re: dyn. Array speichern? was schnelleres als for schleife?
 
Zitat:

Zitat von sirius
Und die Länge des Arrays sollte man noch mit der Größe der Elemente multiplizieren.

In der Regel ja, aber da er von einem Byte-Array sprach, und sizeof(Byte) = 1... ;)

snow 27. Jan 2008 19:56

Re: dyn. Array speichern? was schnelleres als for schleife?
 
Ja kann ich den ein array einfach so auslesen, wenn die größe weis? oder speicher ich dann nur den pointer und alles was hinter dem pointer im ram liegt?

Delphi-Quellcode:
Blockwrite(dat,array[0],length(array));
gruß snow

himitsu 27. Jan 2008 21:31

Re: dyn. Array speichern? was schnelleres als for schleife?
 
Auslesen genauso wie Einlesen, also geht es so ;)


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