AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Objekt aus dyn. Array löschen

Ein Thema von stoermi · begonnen am 7. Dez 2004 · letzter Beitrag vom 7. Dez 2004
Antwort Antwort
stoermi

Registriert seit: 1. Dez 2004
Ort: im Wald von Thüringen
75 Beiträge
 
Delphi 6 Enterprise
 
#1

Objekt aus dyn. Array löschen

  Alt 7. Dez 2004, 19:50
Hallo!

Angenommen, ich habe ein dynamisches Array von Instanzen einer eigenen Klasse mit 10 Objekten drin.

Wie lösche ich beispielsweise das 4. Objekt (array[3])?

Per for-Schleife wird das 5. Objekt zum 4., das 6 zum 5, usw.
Dann wird das Array auf 9 verkürzt (setLength(array,9)).

Reicht das schon?

Oder muss ich irgend wann (wenn dann doch sicherlich vor der Schleife) noch den Destructor bemühen.
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#2

Re: Objekt aus dyn. Array löschen

  Alt 7. Dez 2004, 19:54
Vorher musst du mit Free das Objekt freigeben.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#3

Re: Objekt aus dyn. Array löschen

  Alt 7. Dez 2004, 19:56
wenn Du Deine theoretischen Überlegungen nicht gerade für den Informatik Unterricht brauchst, würde ich Dir TList ans Herz legen
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Objekt aus dyn. Array löschen

  Alt 7. Dez 2004, 19:56
Für deine Aufgabe ist TObjectList geeigneter, da diese einiges an Verwaltungsaufwand abnimmt (Automatische freigabe beim Löschen, Alle Einträge könnnen jederzeit gelöscht werden).

Aber sonst reicht dein Ablauf schon.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#5

Re: Objekt aus dyn. Array löschen

  Alt 7. Dez 2004, 20:04
Zitat:
Per for-Schleife wird das 5. Objekt zum 4., das 6 zum 5, usw.

wieso willst du so oft was verschieben? kopier einfach das letzte item deines arrays, an die stelle des zu löschenden items und setze dann die laenge -1.

sagen wir mal du möchtest das vierte element(=3) löschen....

Delphi-Quellcode:
MyArray[3] = MyArray[High(MyArray)];
SetLength(MyArray, Length(MyArray)-1);
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#6

Re: Objekt aus dyn. Array löschen

  Alt 7. Dez 2004, 20:10
Um allen das Leben zu erleicht habe ich folgenden Beitrag für die Codelib vorgeschlagen:

http://www.delphipraxis.net/internal...ct.php?t=41245
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#7

Re: Objekt aus dyn. Array löschen

  Alt 7. Dez 2004, 20:27
der code sieht ein bisschen übertrieben aus
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#8

Re: Objekt aus dyn. Array löschen

  Alt 7. Dez 2004, 20:28
Zitat von Pseudemys Nelsoni:
der code sieht ein bisschen übertrieben aus
Den musst du aber nur ein mal schreiben und kannst damit jedes beliebige Array kürzen
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#9

Re: Objekt aus dyn. Array löschen

  Alt 7. Dez 2004, 20:34
respekt, sieht nicht schlecht aus, haste selber geschrieben? (bringste mir asm bei? )
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#10

Re: Objekt aus dyn. Array löschen

  Alt 7. Dez 2004, 20:36
Zitat von Pseudemys Nelsoni:
respekt, sieht nicht schlecht aus, haste selber geschrieben? (bringste mir asm bei? )
Denke das sollten wir im anderen Beitrag klären. Hab ich selber geschrieben. Asm kann ich dir auch nicht beibringen, da ich es zu wenig kenne. Für diese Anwendung hat es gerade noch gereicht, aber wie gesagt, das meisste hab ich dadurch rausgefunden, dass ich einfach mir den Asm-Output vom Compiler angeschaut habe.

[edit]Danke[/edit]
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz