Entwickler-Ecke
Sonstiges (Delphi) - Wie lösche ich einen Wert aus der mitte eines Arrays?
CenBells - Fr 15.08.03 18:15
Titel: Wie lösche ich einen Wert aus der mitte eines Arrays?
Hallo Leute,
ich habe ein Dynamisches Array of Integer;
Zur Laufzeit füge ich dort Werte ein. Nun möchte ich auch Werte daraus löschen und dennoch resourcensparend mit dem array umgehen. Ich möchte also die liste um eins verkürzen aber dabei keinen wert verlieren. Gibt es nur die möglichkeit jeden wert ab dem zu löschenden einen nach vorne zu kopieren und dann die länge um eins zu vermindern oder gibt es da was anderes?
Gruß
Ken
AndyB - Fr 15.08.03 18:20
Das ist die einzige Lösung bei Arrays.
CenBells - Fr 15.08.03 18:27
ok,
danke.
Aya - Fr 15.08.03 18:28
Hi,
du könntest auch die TList (hat nix mit TStringList o.Ä. zu tun!) verwenden, welche im grunde auch nen Dynamischer Array ist, der dir aber sehr viele nette komfortable möglichkeiten bietet ;)
Au'revoir,
Aya~
CenBells - Fr 15.08.03 19:03
@aya, Danke für den Tipp, kenn ich aber schon :wink:
Ich habe bisher immer TList benutzt. Wollte jetzt aber mal so ein Array anfassen...
Gruß
Ken
EProm - Sa 30.08.03 23:53
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| Procedure DeleteArrayEntry(Item:Integer;Var Array1:TArray); Var I:Integer; Begin IF (Length(Array1)>1) and (Item<>Length(Array1)-1) Then For I:=Item To Length(Array1)-2 Do Array1[I]:=Array1[I+1]; SetLength(Array1,Length(Array1)-1); End; |
die kopfzeile muss noch geändert werden.
füg einfach bei Tarray deinen arraytypen ein...dann sollte es gehen
bsp:
Delphi-Quelltext
1:
| Procedure DeleteArrayEntry(Item:Integer;Var Array1:MeinArrayTyp); |
Moderiert von
UGrohne: Delphi-Tags eingefügt
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!