![]() |
Element aus mehrdimensionalem array entfernen
Hi,
ich habe ein mehrdimensioanles array und möchte daraus eine "zeile" entfernen. gibt es dazu eine einfache lösungsmöglichkeit wie items.delete o.ä? wenn nein, wie macht man das am einfachsten? *MFG* |
Re: Element aus mehrdimensionalem array entfernen
Überschreibe diese Zeile doch einfach und lösch dann die letzte also:
Delphi-Quellcode:
Müsstest du natürlich für mehrere Dimensionen anpassen, die Idee müsste aber klappen.
For i:= ZULöschendeZeile to length(array) do
array[i]:=array[i+1]; setlength(array, length(array-1); |
Re: Element aus mehrdimensionalem array entfernen
hi meflin,
wenn dein array ein array of string ist, dann:
Delphi-Quellcode:
wenn es sich um ein array of pointer handelt:
arrayname[2, 3] := '';
Delphi-Quellcode:
und so weiter ;)
arrayname[2, 3] := nil;
edit: toxman's lösung für dynamische, meine für statische arrays ;) Aenogym |
Re: Element aus mehrdimensionalem array entfernen
ok wenns nix einfacheres gibt...
dummerweise weis ich noch netmal wie viele dimensionen mein array hat. dann wirds halt unübersichtlich :? |
Re: Element aus mehrdimensionalem array entfernen
Du kannst kein Feld aus einem Array löschen, jedenfalls nicht so einfach. Es gibt zwei Möglichkeiten, entweder du kopierts alle Einträge um ein Feld nach vorne und überschreibst so den zu löschenden Eintrag und dann verkürztz du das Array um eins. Oder, so mache ich es immer, du kopierst einfach den letzten Eintrag auf den zu löschenden Eintrag und verkürzt es dann um eins. Geht aber nur, wenn die nicht unbedingt Sortierung erhaltenbleiben soll oder du sortierst es jedes mal wieder.
|
Re: Element aus mehrdimensionalem array entfernen
ok dann wohl ersteres, da der index die sortierung ist und somit mit der zweiten methode die alte ordnung nicht mehr hergestellt werden könnte. thx jedenfalls!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:40 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