Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi array verändern (https://www.delphipraxis.net/126401-array-veraendern.html)

AlexanderBrade 23. Dez 2008 18:27


array verändern
 
Wie kann ich aus meinem Array B[1..24] in Abhängigkeit verschiedener Bedingungen bestimmte Elemente z.B. B[2] und B[4] entfernen, sodass sie beim Nachfolgenden Sortieren in der sortierten Liste nicht mehr auftauchen?

DeddyH 23. Dez 2008 18:32

Re: array verändern
 
Bei statischen Arrays kannst Du keine Elemente entfernen.

AlexanderBrade 23. Dez 2008 18:33

Re: array verändern
 
Dann gibt es sicherlich so etwas wie dynamische...

mkinzler 23. Dez 2008 18:34

Re: array verändern
 
Ich würde sowieso einen dynamischen verwenden, denn die Größe könnte sich schnell ändern
[Edit:
Zitat:

Dann gibt es sicherlich so etwas wie dynamische...
Ja wenn du die Grenzen weglässt ( siehe auch Paramter anderer Thread)
}

DeddyH 23. Dez 2008 18:34

Re: array verändern
 
Jepp, die gibt es.
Delphi-Quellcode:
var
    arr1: array[1..8] of integer; //statisches Array
    arr2: array of integer; //dynamisches Array, Größe muss über SetLength festgelegt werden

AlexanderBrade 23. Dez 2008 18:46

Re: array verändern
 
Wie setze ich den SetLength fest?
Wie greife ich dann auf solche Feldvariablen zu: auch z.B. B[20], wenn das mit der festgelegten Länge korrespondiert?

DeddyH 23. Dez 2008 18:48

Re: array verändern
 
SetLength -> F1, Zugriff erfolgt wie bei einem statischen Array über Array[Index].

AlexanderBrade 23. Dez 2008 18:54

Re: array verändern
 
Die Hilfe spuckt doch nur "Müll" aus, fast unabhängig davon was ich suche bzw. eingebe(Natürlich sthet das im Zusammenhang mit meinem beschränkten Wissen zu Delphi)!
Vielleciht kann mir jemand mal aufzeigen wie diese Length festgesetzt wird und vor allem wo!
Im übrigen wie lösche ich nun eigentlich ein "Objekt" aus dem array of integer, z.B. B[12]?

mkinzler 23. Dez 2008 18:57

Re: array verändern
 
Z.B. mit dem letzen Element Tauschen und dann den Array um eins verkleinern

guidok 23. Dez 2008 19:02

Re: array verändern
 
Also ich finde die Hilfe extrem hilfreich (wie sinnig).

Suche einfach in der Hilfe nach der Routine "SetLength" und damit bekommst du eine genaue Beschreibung, wie diese funktioniert. Im Prinzip ist allerdings schon der Name selbstredend, oder kannst du kein Englisch?

Wo du die Länge festlegst und wie oft du diese änderst ist deine Sache, das musst du schon selbst entscheiden. Hier kennt ja schließlich niemand deinen Code.

Einfach Löschen ist nicht drin. Löschen besteht z.B. aus folgenden Schritten:

1. Die Elemente NACH dem zu löschenden Element um eine Position nach vorne verschieben (ja, damit überschreibst du das Element, das du löschen willst)
2. Das Array mit Hilfe von SetLength um ein Element verkürzen.

Nur zur Vollständigkeit: Objekte sind was anderes. Ein Array of Integer enthält einfach Elemente vom Typ Integer und keine Objekte.

Edit:

Wie es mkinzler geschrieben hat geht es natürlich auch. Wenn du sowieso danach sortierst, dann ist die Reihenfolge ja wurscht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:12 Uhr.
Seite 1 von 4  1 23     Letzte »    

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