Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Teile eines mehrdimensionalen (dynamischen) Arrays kopieren (https://www.delphipraxis.net/26973-teile-eines-mehrdimensionalen-dynamischen-arrays-kopieren.html)

styluz 2. Aug 2004 11:31


Teile eines mehrdimensionalen (dynamischen) Arrays kopieren
 
Hallo Leute,

seit ca. einem Monat beschäftige ich mich nun auch mit Delphi. Diese Seite hat mir auch schon häufig bei Problemen geholfen, aber bei einem bin ich noch nicht fündig geworden:

Ich habe ein Array vom Typ:

Delphi-Quellcode:
TArrayX = array of array of RecordBerechnung
der Record besteht aus 3 Integers und einem String.

Mein Problem ist nun, dass ich das Array sortieren muss. Hierzu müsste ich einzelne Teile kopieren,
nämlich die Records. Bloß ist mir noch keine schlaue Lösung für dieses Problem eingefallen.

Eine komplizierte Lösung wäre, wenn ich über For-Schleifen jedes Element durchgehe... Aber wie bekommt man die Länge der einzelnen Elemente heraus? Funktioniert length auch bei Mehrdimensionalen Arrays? Bsp: length(ArrayX[0][]) ?, also die Länge des Arrays an der Stelle 0?

Bin für alle Ideen offen. Und schon mal danke für die Antworten :wink:

ibp 2. Aug 2004 12:03

Re: Teile eines mehrdimensionalen (dynamischen) Arrays kopie
 
ja length() funktioniert auch mehrdimesional genau wie high():

Delphi-Quellcode:
...
  meinarray=array of array of meintyp
...
  groessedeserstenarrays:= length(meinarray);
  groessedesdrittenunterarrays:=length(meinarray[3]);
...
  anzahlderelementedeserstenarrays:=high(meinarray);

Chewie 2. Aug 2004 12:05

Re: Teile eines mehrdimensionalen (dynamischen) Arrays kopie
 
Die Records kannst du mit Delphi-Referenz durchsuchenMove kopieren. Length funktioniert auch auf "Unterarrays" von mehrdimensionalen Arrays, ein Length(MyArray[2]) bei einem zweidimensionalen Array funktioniert tadellos.

roderich 2. Aug 2004 12:52

Re: Teile eines mehrdimensionalen (dynamischen) Arrays kopie
 
mein Tip:
Nicht im Speicher sortieren, sondern nur einen SortIndex pro Eintrag einführen und diesen "sortieren" (d.h. abhängig von Sortierung hochzählen).

Roderich

styluz 2. Aug 2004 13:10

Re: Teile eines mehrdimensionalen (dynamischen) Arrays kopie
 
@all: danke für die Antworten
habs nun erstmal mit length und ein paar for-schleifen gelöst. Die Move Prozedur versteh ich allerdings noch nicht ganz... im Hilfe-Beispiel wird das Array von Char´s in einen Integer kopiert?

Nur so als Beispiel: Im Array sind die Chars "0","1","2","3" soll heißen nach ASCII 30h, 31h, 32h, und 33h. jetzt verschieb ich die in die Integer-Variable... steht dort jetzt 30313233h ? Oder wie kann ich das Interpretieren?

nailor 2. Aug 2004 13:13

Re: Teile eines mehrdimensionalen (dynamischen) Arrays kopie
 
probiers doch aus. müsste aber eigentlich so sein.


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