![]() |
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?
|
Re: array verändern
Bei statischen Arrays kannst Du keine Elemente entfernen.
|
Re: array verändern
Dann gibt es sicherlich so etwas wie dynamische...
|
Re: array verändern
Ich würde sowieso einen dynamischen verwenden, denn die Größe könnte sich schnell ändern
[Edit: Zitat:
} |
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 |
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? |
Re: array verändern
SetLength -> F1, Zugriff erfolgt wie bei einem statischen Array über Array[Index].
|
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]? |
Re: array verändern
Z.B. mit dem letzen Element Tauschen und dann den Array um eins verkleinern
|
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 03:14 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