Thema: Delphi Wortliste erstellen

Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Wortliste erstellen

  Alt 5. Mär 2004, 00:46
Mit explodeexplode und als Trennzeichen das Leerzeichen den Text zerlegen. Die wörter in eine sortierte Stringliste packen und so einstellen, dass Duplikate ignoriert werden und dann meine Prozedur anwenden:
Delphi-Quellcode:
{------------------------------------------------------------------------------}
{  Worthäufigkeit ermitteln                                                    }
{------------------------------------------------------------------------------}

procedure Occurence(sl: TStrings; Text: string; var WordArray: TWordArray);
var
  OuterLoop, InnerLoop: Cardinal;
  TextWordList: TStringDynArray;
  Count: Cardinal;
begin
  TextWordList := Explode(' ', Text);
  Count := 1;
  // Wortliste durchgehen
  for OuterLoop := 0 to sl.Count - 1 do
  begin
    for InnerLoop := 0 to Length(TextWordList) - 1 do
    begin
      if sl.Strings[OuterLoop] = TextWordList[InnerLoop] then
        inc(Count);
    end;
    WordArray[OuterLoop].Word := sl.Strings[OuterLoop];
    WordArray[OuterLoop].Count := Count;
    Count := 1;
    if bCancel = 1 then
      Break;
  end;
end;
TWordArray ist eine dynamisches Array vom Typ:
Delphi-Quellcode:
type
  TStringDynArray = array of string; // um Textzeile in Wörter-Array zu zerlegen
  TWordRec = record // zu jedem Wort gehört die Anzahl
    Word: ShortString;
    Count: Cardinal;
  end;
  TWordArray = array of TWordRec;
Im Feld Word sthet dann das Wort und im Feld Count die Häufigkeit.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat