Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wörter Zählen in String? (https://www.delphipraxis.net/125030-woerter-zaehlen-string.html)

Yakumo500 29. Nov 2008 14:11


Wörter Zählen in String?
 
HiHo,
Ich habe schon ein bisschen nach dem Thema gesucht und TOKEN gefunden aber ich kapier nicht genau wie das geht.
Kennt jmd eine bessere Methode oder kann mir Token erklären?

Danke im Voraus

DeddyH 29. Nov 2008 14:15

Re: Wörter Zählen in String?
 
Hallo und Willkommen in der DP :dp:,

wie würdest Du die Wörter denn manuell zählen? Zuerst musst Du Dir im Klaren darüber sein, wie Du ein Wort definierst. Dann gehst Du in einer Schleife den String durch und überprüfst diese Definition. Am Ende solltest Du die Anzahl der Wörter haben. Das nur so als Denkansatz.

RWarnecke 29. Nov 2008 14:16

Re: Wörter Zählen in String?
 
Hallo und herzlich Willkommen,

ich würde das ganze über die Funktion Hier im Forum suchenExplode realisieren. Mit dieser Funktion kannst Du einen String anhand eines Trennzeichens in ein Array schreiben. Danach würde ich die Größe des Array's auslesen und hättest damit die Anzahl der Wörter.

Luckie 29. Nov 2008 14:17

Re: Wörter Zählen in String?
 
Wenn es nicht so genau sein muss, kann man einfach die Leerzeichen und Zeilenumbrüche zählen.

Ginko 30. Nov 2008 13:25

Re: Wörter Zählen in String?
 
Vielleicht so in der Art:


Delphi-Quellcode:
  for i:=0 to length(edit1.Text) do
    begin
      if edit1.Text[i] = ' ' then
        inc(zaehler);
    end;
    label1.Caption := inttostr(zaehler+1);

Yakumo500 3. Dez 2008 16:42

Re: Wörter Zählen in String?
 
Vielen Dank für eure Antworten.
Ich hab nach was gefunden wie es geht:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Text:string;
    RegExpr: TRegExpr;
    Counter: integer;
begin
  Text := Memo1.Lines.Text;
  Counter := 0;

  RegExpr := nil;
  try
    RegExpr := TRegExpr.Create;
    if RegExpr <> nil then begin
      RegExpr.Expression := '[^][\s//\\(()),,<<>>&&$$..==""!!°°§§%%´´``~~**''##;;::__||++]+';
      if RegExpr.Exec(Text) then
        repeat
          RegExpr.Match[1];
          Counter := Counter + 1;
        until not RegExpr.ExecNext;
    end;
  except
  end;
  RegExpr.Free;
  ShowMessage(inttostr(Counter));
end;


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