Autor Thema: Objekt aus Array löschen  (Gelesen 1980 mal)

Offline Gutierrez

  • Aktives Mitglied
  • ***
  • Beiträge: 112
Objekt aus Array löschen
« am: 24.11.15 - 09:15:42 »
Hallo liebe Notes-Liebenden ;-)


Kurze Frage:

Ich habe ein Array mit Objekten:

Dim Aepfel() As Apfel

Redim Aepfel(0)
Set Aepfel(0) = New Apfel

Redim Preserve Aepfel(1)
Set Aepfel(1) = New Apfel

Redim Preserve Aepfel(2)
Set Aepfel(2) = New Apfel

Redim Preserve Aepfel(3)
Set Aepfel(3) = New Apfel


Jetzt möchte ich einen Apfel mit Index = 1 löschen, Apfel Index = 2 soll aber auf die Position von dem gelöschten Apfel nach vorne rücken, sowie alle folgenden Apfel-Objekte. Zum Schluß wird das Array um ein Element verkleinert.

Wie würdet ihr das machen?




Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Objekt aus Array löschen
« Antwort #1 am: 24.11.15 - 09:36:26 »
Im Prinzip so:

Code
deletenr = 1
For i = deletenr To Ubound (Aepfel) - 1
   Set Aepfel (i) = Aepfel (i + 1)
Next i
Redim Preserve Aepfel (Ubound (Aepfel) - 1)

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Objekt aus Array löschen
« Antwort #2 am: 24.11.15 - 10:14:21 »
Brauchst Du denn wirklich den direkten Zugriff über die Indizes? Wenn nicht, dann würde ich über eine Liste arbeiten, die ist in diesem Fall viel Flexibler...

Code
Class Apfel
      Public strIdentifier as String
      Sub New()
        Me.strIdentifier = "Irgendeineindeutigeridentifier"
      End Sub
    End Class

Dim tmpApfel as Apfel
Dim lAepfel List as Apfel

Set tmpApfel = New Apfel()
Set lAepfel( tmpApfel.strIdentifier ) = tmpApfel

Ein Element löschen geht dann einfach über
Code
Erase lAepfel( irgendeinIdentifier )


Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Gutierrez

  • Aktives Mitglied
  • ***
  • Beiträge: 112
Re: Objekt aus Array löschen
« Antwort #3 am: 24.11.15 - 10:18:36 »
OK, im Prinzip habe ich es auch so gelöst wie Peter, nur mit paar Zeilen mehr.

Die Idee mit der Liste (ich mag Listen!) ist mir noch nicht gekommen, aber interessant!

Vielen Dank euch beiden!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz