AGB  ·  Datenschutz  ·  Impressum  







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

Doppelte Werte aus einem Array löschen

Ein Thema von endeffects · begonnen am 15. Jul 2004 · letzter Beitrag vom 15. Jul 2004
Antwort Antwort
endeffects

Registriert seit: 27. Jun 2004
450 Beiträge
 
#1

Doppelte Werte aus einem Array löschen

  Alt 15. Jul 2004, 10:55
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?
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#2

Re: Doppelte Werte aus einem Array löschen

  Alt 15. Jul 2004, 10:58
...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]
  Mit Zitat antworten Zitat
mytar

Registriert seit: 30. Mai 2004
Ort: Zermatt
411 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Doppelte Werte aus einem Array löschen

  Alt 15. Jul 2004, 11:02
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.
Francis Obikwelu
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#4

Re: Doppelte Werte aus einem Array löschen

  Alt 15. Jul 2004, 11:04
^...es kann aber doch sein, daß die werte schon doppelt vorhanden sind, dann kommt er an einem elemntweisen vergleich nicht vorbei...
  Mit Zitat antworten Zitat
mytar

Registriert seit: 30. Mai 2004
Ort: Zermatt
411 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: Doppelte Werte aus einem Array löschen

  Alt 15. Jul 2004, 11:06
Vermutlich wird er das Array wohl selbst erzeugen, oder nicht?
Francis Obikwelu
  Mit Zitat antworten Zitat
endeffects

Registriert seit: 27. Jun 2004
450 Beiträge
 
#6

Re: Doppelte Werte aus einem Array löschen

  Alt 15. Jul 2004, 11:09
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
  Mit Zitat antworten Zitat
mytar

Registriert seit: 30. Mai 2004
Ort: Zermatt
411 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: Doppelte Werte aus einem Array löschen

  Alt 15. Jul 2004, 11:11
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.
Francis Obikwelu
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#8

Re: Doppelte Werte aus einem Array löschen

  Alt 15. Jul 2004, 11:12
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
  Mit Zitat antworten Zitat
endeffects

Registriert seit: 27. Jun 2004
450 Beiträge
 
#9

Re: Doppelte Werte aus einem Array löschen

  Alt 15. Jul 2004, 11:14
in diesem fall kann ich auf die doppelten werte verzichten
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#10

Re: Doppelte Werte aus einem Array löschen

  Alt 15. Jul 2004, 11:24
.. 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
  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:29 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