AGB  ·  Datenschutz  ·  Impressum  







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

Dynamische Array Elemente verwalten

Ein Thema von C64-Flo · begonnen am 28. Apr 2005 · letzter Beitrag vom 28. Apr 2005
Antwort Antwort
C64-Flo

Registriert seit: 11. Nov 2003
91 Beiträge
 
#1

Dynamische Array Elemente verwalten

  Alt 28. Apr 2005, 16:46
Hi!

Ich bins mal wieder mit einer Frage bezüglich dynamischer Arrays:

Ich kann ja die Länge eines dy. Arrays verhgrössern/verkleinern....
aber
Kann ich auch ein bestimmtes Element gezielt herausnehmen (so dass die anderen dann praktisch ´nachrücken´) - oder muss ich das manuell bewerkstelligen


  Mit Zitat antworten Zitat
Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Dynamische Array Elemente verwalten

  Alt 28. Apr 2005, 16:50
Mit nem dynamischen Array musst du sowas manuell machen... es seidenn ich irre mich
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 11. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Dynamische Array Elemente verwalten

  Alt 28. Apr 2005, 16:51
Zitat:
Kann ich auch ein bestimmtes Element gezielt herausnehmen (so dass die anderen dann praktisch ´nachrücken´) - oder muss ich das manuell bewerkstelligen Question
Sowiel ich wiess, nur manuell.

Zitat:
Ich kann ja die Länge eines dy. Arrays verhgrössern/verkleinern....
SetLength();...
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Dynamische Array Elemente verwalten

  Alt 28. Apr 2005, 17:00
Wenns nicht auf die Reihenfolge ankommt, kannst du einfach das zu löschende Element mit dem letzten in der Liste überschreiben und dann das letzte löschen. Kommt es auf die Reihenfolge an, kannst du das über eine Schleife lösen:
Delphi-Quellcode:
for i:= StelledeszulöschendenElements to AnzahlDerElemente -2 do
list[i]:= list[i+1];

list[AnzahlDerElemente-1] := 0; // Je nachdem was du drin hast
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Benutzerbild von Airblader
Airblader

Registriert seit: 29. Okt 2004
Ort: Geislingen an der Steige
742 Beiträge
 
#5

Re: Dynamische Array Elemente verwalten

  Alt 28. Apr 2005, 17:03
Ich hab dazu für ein Projekt mal ne Prozedur geschrieben.
Ob sie performant ist, müssen dir die profis sagen ( )

Aber mal so als "Idee":

Delphi-Quellcode:
SetLength(TProduktion, length(TProduktion)+1);
TProduktion[high(TProduktion)] := TProduktion[index-1];

TProduktion[index-1] := TProduktion[index];
TProduktion[index] := TProduktion[high(TProduktion)];

SetLength(TProduktion, length(TProduktion)-1);
TProduktion war halt mein Array.

Der "Trick" ist folgender:
Du erweiterst das Array, steckst da zur kurzen Speicherung den Arraywert rein und überschreibst den alten.
Dann überschreibst du wiederum den Index, den du grade eben zum überschreiben genommen hast und am Ende wird das Array wieder verkürzt und der ArrayIndex zum kurzzeitigen Speichern gelöscht

air
(Edit: Achja, in dem Fall wird das ganze halt um einen Wert verringert. Wenn du die ganze Prozedur willst, kannst ja ne PM schicken..das ableiten dürfte nu aber nichmehr schwer sein)
Ingo Bürk
Es nimmt der Augenblick, was Jahre geben.

Johann Wolfgang von Goethe
  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: Dynamische Array Elemente verwalten

  Alt 28. Apr 2005, 17:06
Oder man sucht nach DeleteArray in der CodeLib. Dann findet man den folgenden Beitrag:

http://www.delphipraxis.net/internal...ht=deletearray

mit dem man einen Eintrag aus einem beliebigen dynamischen Array löschen kann.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
C64-Flo

Registriert seit: 11. Nov 2003
91 Beiträge
 
#7

Re: Dynamische Array Elemente verwalten

  Alt 28. Apr 2005, 17:27
Vielen Dank für die schnelle Hilfe!

Jetzt habe ich ja auch noch die Qual der Wahl!

Na, da es in meinem Array nicht auf die Reihenfolge ankommt, bewerkstellige ich das Ganze auf die ´einfache´ Art.

PS: Mein Delphi-selbstbeibring-Nebenprodukt(tm) ist inzwischen ein spielbares Hack´n´Slay ( leider nur Bilder/sounds usw, keine Wahnsinnsgrafiken ).

Ihr könnt gerne mal auf der Seite dazu vorbeischauen (wenn ihr auf sinnloses Gemetzel im AD&D-Stil steht) , die ich kurzerhand ins Netz geworfen habe : http://home.arcor.de/ultimateadd/
  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 10:38 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