Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Doppelte Werte aus einem Array löschen (https://www.delphipraxis.net/25937-doppelte-werte-aus-einem-array-loeschen.html)

endeffects 15. Jul 2004 09:55


Doppelte Werte aus einem Array löschen
 
Hallo,

ich hab nun schon eine ganze Weile in diversen Foren
und Newsgroups rumgestöbert und irgendwie nichts dazu
gefunden. Ich möchte aus einem Array (umfasst ca. 1000
einträge) alle dopplungen entfernen. gibt es dafür
evtl eine funktion?

ibp 15. Jul 2004 09:58

Re: Doppelte Werte aus einem Array löschen
 
...imho nein, ist doch aber auch kein problem das selber zu schreiben...mit zwei schleifen solltest du das hinkommen...


[edit] artikel "das" eingefügt [/edit]

mytar 15. Jul 2004 10:02

Re: Doppelte Werte aus einem Array löschen
 
Ich denke besser wäre, du überprüfst vor dem Einfügen ob der Werte einthalten ist, wenn nicht fügst du in ein.


Schreib dir eine Funktion die einen Boolean zurückgibt.

ibp 15. Jul 2004 10:04

Re: Doppelte Werte aus einem Array löschen
 
^...es kann aber doch sein, daß die werte schon doppelt vorhanden sind, dann kommt er an einem elemntweisen vergleich nicht vorbei...

mytar 15. Jul 2004 10:06

Re: Doppelte Werte aus einem Array löschen
 
Vermutlich wird er das Array wohl selbst erzeugen, oder nicht?

endeffects 15. Jul 2004 10:09

Re: Doppelte Werte aus einem Array löschen
 
ich hab mehrere threads gleichzeitig laufen
und jeder thread erzeugt ein array in dieser größe,
ich weiß nicht ob es klug wäre beim einfügen eines
neuen wertes jedesmal das vorhandene array in jedem
thread komplett durchzulaufen

mytar 15. Jul 2004 10:11

Re: Doppelte Werte aus einem Array löschen
 
Tut mir leid, dann lieg ich hier wohl falsch, ich wusste nicht dass du mit Threads arbeitest,
und wenn man überlegt, jedesmal 1000 Arrayelemente zu überprüfen, dann hat ibp sicher recht.

ibp 15. Jul 2004 10:12

Re: Doppelte Werte aus einem Array löschen
 
Zitat:

Vermutlich wird er das Array wohl selbst erzeugen, oder nicht?

das stimmt wohl schon, aber stell dir doch mal eine liste von werten vor, für die du z.b. eine statistische auswertung machen willst und dafür braucht man dann vielleicht zum einen jedes element auch wenn es doppelt vorkommt und zum anderen vielleicht nur die unterschiedlichen elemente..
... es spricht nichts gegen eine anfängliche prüfung, aber es gibt auch andere möglichkeiten

endeffects 15. Jul 2004 10:14

Re: Doppelte Werte aus einem Array löschen
 
in diesem fall kann ich auf die doppelten werte verzichten :zwinker:

ibp 15. Jul 2004 10:24

Re: Doppelte Werte aus einem Array löschen
 
.. hab hier was mit doppelte löschen, zwar kein array sondern treenodes aber das kann man ja anpassen...
Delphi-Quellcode:
  //löschen der doppelten Knoten
  node:=tvInzidenz.Items.GetFirstNode; // 1. Knoten
  while Node<>nil do
  begin
    compNode:=node.getNextSibling;
    while compNode<>nil do
    begin
      if Node.Text=compNode.Text then
      begin
        tvInzidenz.Items.Delete(CompNode);
        compNode:=Node.getNextSibling;
      end // if
      else
        compNode:=compNode.getNextSibling
    end; // while
    Node:=Node.getNextSibling;
  end; // while


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:09 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