AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi String durchsuchen und Wortvorkommen zählen
Thema durchsuchen
Ansicht
Themen-Optionen

String durchsuchen und Wortvorkommen zählen

Ein Thema von Aike · begonnen am 31. Dez 2004 · letzter Beitrag vom 1. Jan 2005
Antwort Antwort
Aike

Registriert seit: 2. Okt 2004
319 Beiträge
 
#1

String durchsuchen und Wortvorkommen zählen

  Alt 31. Dez 2004, 18:58
Hallo Leute,

ich habe ein ganz kniffliges Problem *g* Und zwar sieht das wie folgt aus:

In meinem String stehen sehr viele Worte und ich möchte zählen, wie oft ein und das selbe Wort vorkommt, bis das primär gesuchte Wort auftaucht.

Das soll zum Beispiel so aussehen:
String:
"Delphi Delphi Delphi Delphi Forum Delphi Delphi"
Rückgabewert:
"Delphi": 4
"Forum": Existiert

Die primäre Durchsuchung (die auch funktioniert ), sieht so aus:

Delphi-Quellcode:
sl := TStringList.Create;

try
  sl.Delimiter := #9;
  sl.Sorted:=True;

  for x:=0 to ListboxGesuchteWorte.Count-1 do
  begin
    sl.DelimitedText := ListboxGesuchteWorte.Items[x];
    sl.Duplicates:=dupIgnore;

    for ndx := 0 to pred (sl.Count) do
    begin
      okay := Pos (sl.Strings[ndx],MeinGrosserString) > 0; // Wort ist vorhanden
      if not (okay) then
        ListboxNichtVorhanden.Items.Add(sl.Strings[ndx])
      else
        ListboxIstVorhanden.Items.Add(sl.Strings[ndx]);
    end;
  end;
finally
  FreeAndNil (sl);
end;
Gegen radikale Umwürfe hab ich nix, der Code stammt auch nicht von mir; ich komme damit kaum zurecht und versuche, mich mit meinen mangelhaften (aber wachsenden *g*) Kenntnissen durchzumogeln

Hm, also ich hoffe ich hab 's richtig und vollständig erklärt.

Danke für eure Hilfe!
Achim
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: String durchsuchen und Wortvorkommen zählen

  Alt 31. Dez 2004, 19:26
Moin Aike

welche Delphi Version verwendest Du?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Aike

Registriert seit: 2. Okt 2004
319 Beiträge
 
#3

Re: String durchsuchen und Wortvorkommen zählen

  Alt 1. Jan 2005, 00:15
Delphi 7
Achim
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: String durchsuchen und Wortvorkommen zählen

  Alt 1. Jan 2005, 03:18
Moin Aike,

dann sollte sich das mit PosEx lösen lassen.

Als erstes würde ich mir die Startposition des primären Wortes suchen (pos), und dann solange mit PosEx das sekundäre suchen, solange dessen Startposition kleiner als die des primären ist.

Ein Beispiel:

Delphi-Quellcode:
var
  sSearch : string;
  iPrimaer : integer;
  iCount : integer;
  iSekundaer : integer;

begin
  sSearch := 'Delphi Delphi Delphi Delphi Praxis Delphi Delphi';
  iPrimaer := pos('Praxis',sSearch);
  iCount := 0;
  iSekundaer := pos('Delphi',sSearch);
  while iSekundaer < iPrimaer do begin
    inc(iCount);
    iSekundaer := PosEx('Delphi',sSearch,iSekundaer+1);
  end;
  ShowMessage('Delphi: '+IntToStr(iCount));
end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#5

Re: String durchsuchen und Wortvorkommen zählen

  Alt 1. Jan 2005, 11:21
Hallo,

wenn du die Häufigkeit eines Wortes in einem String wissen willst, dann haben die Schweizer einen netten Code dafür:

www.swissdelphicenter.ch/

Wobei es nicht so heissen muss:
Code:
subtext, ',
sondern so:
Code:
subtext, '',
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Aike

Registriert seit: 2. Okt 2004
319 Beiträge
 
#6

Re: String durchsuchen und Wortvorkommen zählen

  Alt 1. Jan 2005, 11:49
Das Problem an dem Code ist, dass er nicht abbricht, sobald mein gesuchtes Wort auftaucht.

Wie gesagt:
string: 'Delphi Delphi Praxis Delphi' soll nicht
Delphi: 3x
sondern 2x anzeigen, weil 'Delphi' zwei Mal vor Praxis erscheint.

Und PosEx ist komischerweise ein undefinierter Bezeichner, obwohl ich eine Hilfe dazu aufrufen kann
[edit]Yeah, man muss in die UsesList noch den Eintrag "StrUtils" hinzufügen, dann geht 's [/edit]

Ok, anscheinend war es das doch noch nicht. Es funktioniert noch nicht so richtig. Irgendetwas wird falsch durgezählt.
[Eine Stunde später] Ich hab jetzt noch result:=iCount eingefügt und es scheint zu funktionieren *freu*
Achim
  Mit Zitat antworten Zitat
Aike

Registriert seit: 2. Okt 2004
319 Beiträge
 
#7

Re: String durchsuchen und Wortvorkommen zählen

  Alt 1. Jan 2005, 20:55
Jetzt habe ich aber noch folgendes Problem; falls das hier im falschen Thread ist müsst ihr 's mir sagen

Die gesuchten Worte stehen in der Listbox "ListboxGesuchteWorte". Leider werden bei der Durchsuchung nur ganze Worte verwendet, und wenn ich in der Listbox als einen Eintrag "Delphi Praxis" stehen habe, wird zuerst nach "Delphi" und dann nach "Praxis" gesucht und beides als separater Wert zurückgegeben.
Wenn in dem Text "Delphi ist Praxis" steht, sollte eigentlich ein false und kein true zurückgegeben werden
Achim
  Mit Zitat antworten Zitat
Benutzerbild von Airblader
Airblader

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

Re: String durchsuchen und Wortvorkommen zählen

  Alt 1. Jan 2005, 21:35
1. Pushen erst nach 24h
2. Neue Frage, neuer Thread



air
Ingo Bürk
Es nimmt der Augenblick, was Jahre geben.

Johann Wolfgang von Goethe
  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 15:25 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