AGB  ·  Datenschutz  ·  Impressum  







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

Wort in Liste vorhanden

Ein Thema von arbu man · begonnen am 27. Aug 2006 · letzter Beitrag vom 30. Aug 2006
Antwort Antwort
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#1

Wort in Liste vorhanden

  Alt 27. Aug 2006, 08:59
Hi,

Ich habe eine Liste? mit etwa 88.000 Einträgen, jeder Eintrag ist ein Wort. Nun suche ich nach einer sehr schnellen möglichkeit zu überprüfen ob ein Wort in dieser Liste ist oder nicht. Mir geht es nur um ein ob, nicht wo ein wo.
Z.Z verwende ich dazu eine TStringList aber die ist mir zulangsam. Gibt es da eine schnellere Lösung ?

mfg, Björn
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Wort in Liste vorhanden

  Alt 27. Aug 2006, 09:06
Hallo Björn,

wenn die Stringliste sortiert ist (Delphi-Referenz durchsuchenTStringList.Sorted), sollte es mit Delphi-Referenz durchsuchenTStringList.IndexOf eigentlich recht schnell gehen.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Wort in Liste vorhanden

  Alt 27. Aug 2006, 09:10
Wenn sie sorted ist, könntest du mit binärer Suche drüberlaufen. Kann allerdings sein, dass TStringList das sowieso macht, wenn sie sorted ist.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Wort in Liste vorhanden

  Alt 27. Aug 2006, 09:11
Da muss ich mich doch fragen, wie du gesucht hast.
Vor allem für jemanden, der Antworten wie meine hier seit fast 2 Jahren und fast 700 Beiträgen bekommt.
Mein erster Versuch mit einer so stumpfsinnigen Suchanfrage wie Hier im Forum suchenstrings schnell suchen brachte schon was du suchst. ("Große Strings schnell auf Inhalt einer Zeichenkette prüfen?")

Nachtrag:
@Hawkeye, eine StringLit muss tatsächlich suchen, eine sortierte StringList muss immer noch (binär) suchen und dann auch noch sortiert einfügen.
Ein Dictionary muss nur den CRC einens Key generieren und kann dir direkt sagen, ob der Key drin ist oder nicht. Ohne zu suchen.
Mit Delphi Boardmitteln hättest du sicherlich Recht, aber Alzhaimers Klassen bringen keine Abhängigkeiten auf andere Komponenten mit.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Wort in Liste vorhanden

  Alt 27. Aug 2006, 09:47
Hallo Elvis,

ich habe natürlich zunächst versucht, zu einem Bordmittel zu greifen. Ohne genauere Informationen von Björn können wir nur raten, ob die die Suchgeschwindigkeit ausreichend ist. Der Knackpunkt wird der Aufbau der Liste sein. Wird sie im Lauf der Verarbeitung ständig erweitert, ist die Stringliste nicht mehr das geeignete Medium zum Speichern (und Suchen) der Daten. In diesem Fall sollte man auf das von dir genannte Dictionary ausweichen. Ich wollte mir die Klassen schon immer mal genauer angesehen, habe es aber bisher versäumt. Danke für den "Push"!

Zitat von Elvis:
Alzhaimers Klassen
Ich hoffe, du bist schnell. alzaimar dürfte bereits einen geeigneten Faustkeil suchen.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von robinWie
robinWie

Registriert seit: 26. Okt 2005
Ort: Lippcity
404 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Wort in Liste vorhanden

  Alt 27. Aug 2006, 09:55
was Genau ist ein Dictionary?
Und wie verwendet man das?
Robin W.
Ein Computer kann (fast) alles.... Man muss es ihm nur beibringen
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Wort in Liste vorhanden

  Alt 27. Aug 2006, 10:00
Zitat von robinWie:
was Genau ist ein Dictionary?
Und wie verwendet man das?
Ich würde sagen du folgst dem Suchlink und klickst auf en Thread, den ich oben erwähnt habe. Dort hat es Alzhaimar Himitsu erklärt.
Aber es scheint dich ja nicht wirklich zu interessieren, sonst hättest du das schon alleine gemacht...
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#8

Re: Wort in Liste vorhanden

  Alt 27. Aug 2006, 10:21
Hi,
nebenbei bemerkt ist die THashedStringList i.d.R. um einiges schneller als die TStringList (und ein VCL eigenes Mittel). In wirklich großen Listen fällt die aber (soweit ich mich richtig erinner) irgendwann auch deutlich hinter alzaimars Klassen zurück (der hatte glaube ich mal irgendwo einen Vergleich gehabt).

Gruß Der Unwissende
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#9

Re: Wort in Liste vorhanden

  Alt 30. Aug 2006, 21:21
Danke für eure Antworten
Werde erstmal eine sortierte THashedStringList nehmen.

Zitat von Elvis:
Da muss ich mich doch fragen, wie du gesucht hast.
Vor allem für jemanden, der Antworten wie meine hier seit fast 2 Jahren und fast 700 Beiträgen bekommt.
Mein erster Versuch mit einer so stumpfsinnigen Suchanfrage wie Hier im Forum suchenstrings schnell suchen brachte schon was du suchst. ("Große Strings schnell auf Inhalt einer Zeichenkette prüfen?")
Ich hatte falsch gesucht nach Eintrag und Liste
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  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:24 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