Autor Beitrag
CenBells
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Fr 15.08.03 18:15 
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

_________________
Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Fr 15.08.03 18:20 
Das ist die einzige Lösung bei Arrays.

_________________
Ist Zeit wirklich Geld?
CenBells Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Fr 15.08.03 18:27 
ok,
danke.

_________________
Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: 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~

_________________
Aya
I aim for my endless dreams and I know they will come true!
CenBells Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: 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

_________________
Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
EProm
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28

WinXP x64, Ubuntu 8.04
Lazarus/FPC
BeitragVerfasst: Sa 30.08.03 23:53 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
Procedure DeleteArrayEntry(Item:Integer;Var Array1:TArray);
Var I:Integer;
Begin
  IF (Length(Array1)>1and (Item<>Length(Array1)-1Then
    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:

ausblenden Delphi-Quelltext
1:
Procedure DeleteArrayEntry(Item:Integer;Var Array1:MeinArrayTyp);					


Moderiert von user profile iconUGrohne: Delphi-Tags eingefügt