![]() |
Was ist wenn ich ein "item" aus einem Array lösche
Moin,
erstmal die Frage, sagen wir mal ich habe 4items (wie heisst das nochmal? items wars nicht...), also ein array [0..3] of string, Wie lösche ich dann Array[2] ? Und vorallem, was passiert mir array[3]? bleibt das 3 oder wird es dann automatisch 2? Wenn nicht, wie mach ich es dann so das es 2 wird? |
Re: Was ist wenn ich ein "item" aus einem Array lö
Also, wenn Du ein statisches Array benutzt, kannst Du IMHO keine Elemente löschen.
Wenn Du ein dynamisches Array verwendest, schau Dir mal ![]() Aber am bequemsten geht es wahrwcheinlich noch mit einer TStringList. Gruß, teebee |
Re: Was ist wenn ich ein "item" aus einem Array lö
jo ich meine ein dynamisches, mal gucken, danke ^^
|
Re: Was ist wenn ich ein "item" aus einem Array lö
Sicher das du ein Dynamisches meinst oder war das jetzt ein versehen, das du oben ein statisches definiert hast? :gruebel:
Mfg |
Re: Was ist wenn ich ein "item" aus einem Array lö
Liste der Anhänge anzeigen (Anzahl: 1)
Boah endlich kann ich mal helfen :-)
ich häng dir mal was an, darin guckst du dir die
Delphi-Quellcode:
an, das Beispiel ist Copyright by W.Doberenz und T.Kowalski....sollte jeder kennen.
procedure TForm1.Button7Click(Sender: TObject); // Löschen
|
Re: Was ist wenn ich ein "item" aus einem Array lö
Falls du zufällig die rar deitei nicht entpacken kannst, probiers mal hiermit:
Code:
Zwar umständlich aber funzt.
procedure TForm1.Button1Click(Sender: TObject);
var asd:array of string; begin // "löscht" zweiten Eintrag im Dynamischen ggf. nachher sortieren falls nötig. Siehe BubbleSort etc. SetLength(asd,5); asd[2]:=asd[5]; asd[5]:=''; setlength(asd,4); end; Mfg |
Re: Was ist wenn ich ein "item" aus einem Array lö
Zitat:
danke an euch ;) ich gucks mir gleich mal an |
Re: Was ist wenn ich ein "item" aus einem Array lö
Also du musst dir im Klaren sein, ob die Reihenfolge deiner Elemente eine Rolle spielt.
Wenn sie egal ist, dann funktioniert WtFs letzter Code, sprich: 1. das letzte Element an die zu löschende Stelle kopieren 2. das letzte Element wegnehmen Ansonsten arbeite besser mit einer Stringlist oder mit einer Verkettung, wobei diese schwieriger zu handeln ist, als ein einfaches Array. |
Re: Was ist wenn ich ein "item" aus einem Array lö
es geht darum das ich auf einen irc server verbinde, für jeden chan brauch ich eine listbox usw, also ca so:
Array Chan1: Channame, RichEdit, ListBox, Edit Chan2: Channame, RichEdit, ListBox, Edit Chan3: Channame, RichEdit, ListBox, Edit Chan4: Channame, RichEdit, ListBox, Edit Chan5: Channame, RichEdit, ListBox, Edit wenn ich jetzt aber ein chan schliesse, moechte ich per schleife prüfen welcher chan das war, anhand von "channame". Wenn das nun z.b Chan3 war, muss chan4 anstelle von chan3 und chan5 anstelle von chan4. Hoffe jemand weiss wie ich das meine |
Re: Was ist wenn ich ein "item" aus einem Array lö
Ja schon,
aber das Denken, ob die Reihenfolge nun wichtig ist, nehme ich dir nicht ab :stupid: |
Re: Was ist wenn ich ein "item" aus einem Array lö
Anhand von channame weisst du doch welche Position der Eintrag im Array hat oder? Dann bräuchtest du nur ein temporäres Array (das du per SetLenght -1 einen kleiner machst) dahin kopierst du nun alle verbleibenden Einträge, Erstellst das Ursprungsarray neu und kopierst zurück.
DANGER: Dies ist ein Tip eines absoluten Anfängers der nur "glaubt" das es so gehen müsste :-) |
Re: Was ist wenn ich ein "item" aus einem Array lö
ne die reihenfolge spielt keine rolle.
aber wenn es sagen wir mal chan3 war, dann muss ich bei Array Chan1: Channame, RichEdit, ListBox, Edit Chan2: Channame, RichEdit, ListBox, Edit Chan3: Channame, RichEdit, ListBox, Edit // dieses element löschen Chan4: Channame, RichEdit, ListBox, Edit Chan5: Channame, RichEdit, ListBox, Edit ist ein temporäres array notwendig? |
Re: Was ist wenn ich ein "item" aus einem Array lö
Nö, einfach das letzte Element in das zu löschende kopieren und das Array um eins kürzen reicht.
|
Re: Was ist wenn ich ein "item" aus einem Array lö
Da bin ich mir nicht sicher, wie gesagt ich bin absoluter Anfänger - aber ich denke das sich hier die Cracks auch noch zu auslassen werden, wenn Sie nett sind :-)
Hab das Beispiel das ich vorhin gepostet habe, gerade mal ausprobiert, funktioniert bestens ausser dem Problem das der letzte Datensatz nicht gelöscht werden kann. |
Re: Was ist wenn ich ein "item" aus einem Array lö
wo liegt denn jetzt das Problem verdammt?
Die Lösung wurde hier doch schon gepostet!
Delphi-Quellcode:
MyArray[2]:=MyArray[high(MyArray)];
SetLength(MyArray,Length(MyArray)-1); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz