Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Dynamisches Array - Komplett mit 0 Füllen ? (https://www.delphipraxis.net/33160-dynamisches-array-komplett-mit-0-fuellen.html)

Cyberbob_at_tot 2. Nov 2004 13:41


Dynamisches Array - Komplett mit 0 Füllen ?
 
Hallo,
gibt es eine einfache Möglichkeit ein Dynamisches Eindimensionales Array mit Nullen zu befüllen ?

Hintergrund ist das ich dieses Array mit Zahlen fülle aber danach wieder den Urzustand haben will!

Ne Frage dazu ist, wie bekomme ich die Länge des Arrays ?

vieleicht geht es mit Fillchar.


BIG THX

Cyberbob

Nicodius 2. Nov 2004 13:43

Re: Dynamisches Array - Komplett mit 0 Füllen ?
 
mydynarray := nil;

das füllt zwar nicht mit nullen aber sonst

so

Delphi-Quellcode:
for i := low(mdynarray) to high(mdynarray) do
        mdynarray[i] := 0;

Steve 2. Nov 2004 13:43

Re: Dynamisches Array - Komplett mit 0 Füllen ?
 
Länge des Arrays: Delphi-Referenz durchsuchenLow, Delphi-Referenz durchsuchenHigh, Delphi-Referenz durchsuchenLength

edit/PS: von 0 bis length wird nen Fehler bringen.. entweder ab Low() bis High() oder ab 0 bis Length-1 oder ab 1 ....usw.....

Gruß
Stephan :dance:

Cyberbob_at_tot 2. Nov 2004 14:02

Re: Dynamisches Array - Komplett mit 0 Füllen ?
 
Danke für die Schnelle Hilfe, Low und High das hat mir geholfen !!

BIG THX

himitsu 2. Nov 2004 14:05

Re: Dynamisches Array - Komplett mit 0 Füllen ?
 
Da in Delphi die dynamischen Arrays eh "immer" mit 0 anfangen, kannst du auch das Low weglassen.

Delphi-Quellcode:
for i := 0 to high(mdynarray) do
  mdynarray[i] := 0;
ansonsten wäre es auch noch mit Length gegangen
Delphi-Quellcode:
for i := 0 to length(mdynarray) - 1 do
  mdynarray[i] := 0;

Dax 2. Nov 2004 14:06

Re: Dynamisches Array - Komplett mit 0 Füllen ?
 
Es geht aber NOCH einfacher, mit Delphi-Referenz durchsuchenFillChar:
Delphi-Quellcode:
FillChar(MyArray[0], 0, (Length(MyArray)-1)*sizeof(MyArray[0]))
Füllt das Array zuverlässig mit Nullen. ;)

alcaeus 2. Nov 2004 14:08

Re: Dynamisches Array - Komplett mit 0 Füllen ?
 
Hi Nico,

Zitat:

Zitat von Nicodius
mydynarray := nil;
das füllt zwar nicht mit nullen...

Warum empfiehlst du es dann? Nach dem Ausführen des Befehls ist der Speicherbereich unreserviert, und die Länge des Arrays geht z.B. verloren. Beim nächsten Zugriff auf das Array fliegt das Programm mit einer AV ins Nirvana.

Greetz
alcaeus

Nicodius 2. Nov 2004 14:11

Re: Dynamisches Array - Komplett mit 0 Füllen ?
 
alcaeus ... hast du was gegen mich .. ich habe ihm nur das völlige auf 0 setzten gegeben ^^

--> ich habe falls das deine genialen augen gesehen haben unten die genaue schleife gepostet ... nur vl wollte er ja eigentlich das andere ^^ wenn du mich nerven willst machs per pn und lass die iditiotischen "warum" posts :wink: danke

praktiker 2. Nov 2004 14:20

Re: Dynamisches Array - Komplett mit 0 Füllen ?
 
Hi
fillchar ist der richtige Weg, weil am schnellsten

:oops:

aber warum nicht so

var a:array [0..100] of byte;
begin

:!: fillchar(a,sizeof(a),0); :!:

// hier noch ne kleine Kontrolle

showmessage(format('%d',[a[100]]));

jfheins 2. Nov 2004 15:11

Re: Dynamisches Array - Komplett mit 0 Füllen ?
 
Zitat:

Zitat von Cyberbob_at_tot
ein Dynamisches Eindimensionales Array mit Nullen zu befüllen ?

Das was du da hast ist statisch ...


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