Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Eintrag aus Array entfernen


klabri - Di 02.12.08 19:57
Titel: Eintrag aus Array entfernen
Hallo
meine Frage ist :wie kann ich den letzten Eintrag aus
einem Array entfernen :
zb: Array[z]:={2,4,5,8,9,10}
,wie kann ich den letzten Eintrag,die 10 aus dem Array
entfernen ?


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Di 02.12.2008 um 22:11


Delete - Di 02.12.08 20:03

Dynamisches Array? Dann mit SetLength() verkleinern, sofern es sich immer um den letzten Eintrag handelt.


klabri - Di 02.12.08 20:20

Ich probier das mal aus;
das Array ist so angelegt
a:array[1..8]of integer ;


jaenicke - Di 02.12.08 20:24

Dann ist es ja kein dynamisches Array, und bei einem festen kannst du die Größe nicht per Code verändern, da kannst du höchstens an die Stelle einen Wert, zum Beispiel die 0 schreiben.
Ansonsten darfst du keine Größe angeben, sondern musst diese immer mit SetLength angeben, wenn du das Array benutzt.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
var
  a: array of integer;
begin
  SetLength(a, 3); // Größe des Arrays auf 3 setzen
  a[0] := 2;
  a[1] := 3;
  a[2] := 4;
  SetLength(a, Length(a) - 1); // Größe des Arrays um eins reduzieren
  // --> Jetzt steht in dem Array noch (2, 3)


Xentar - Di 02.12.08 21:22

Und, wenn du in einem dynamischen Array nicht den letzten Eintrag, sondern irgendeinen aus der Mitte rauslöschen willst, musst du natürlich vorher alle nachfolgenden Elemente um eins nach vorne setzen, bevor du die Größe neu setzt.


klabri - Di 02.12.08 21:38

Hallo
ja,leuchtet mir ein;
es muss ein dynamisches Array sein;
DANKE fuer die Antwort;
Die Qualität dieses Forums ist wirklich sehr gut(!!).