Autor Beitrag
Danniolo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 693



BeitragVerfasst: Do 23.06.05 21:31 
Um bei einem String die Wörter zu zählen benutz man einfach diese Funktion:


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
Function Seps(As_Arg: Char): Boolean;
Begin
 Seps := As_Arg In
  [#0..#$1F' ''.'',''?'':'';''(',')''/''\'];
End;



Function WordCount(CText: String): Longint;
Var
  Ix: Word;
  Work_Count: Longint;
Begin
  Work_Count := 0;
  Ix := 1;
  While Ix <= Length(CText) Do
  Begin
  While (Ix <= Length(CText)) And (Seps(CText[Ix])) Do
   Inc(Ix);
  If Ix <= Length(CText) Then
  Begin
   Inc(Work_Count);

   While (Ix <= Length(CText)) And (Not Seps(CText[Ix])) Do
     Inc(Ix);
  End;
End;
 Result := Work_Count;
End;


Kann man die einzelnen Wörter auch "auseinander zupfen"?
Also, dass alle Wörter untereinander z.B.
in nem Memo (bzw. Richedit oder so) ausgegeben werden?

Beispiel:

EigabeString: Hallo, na wie geht es dir?
Wortanzahl: 6

Ausgabe:
Hallo
na
wie
geht
es
dir?
:?:

Moderiert von user profile iconGausi: Code- durch Delphi-Tags ersetzt.
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Do 23.06.05 21:35 
na klar. man betrachte dazu die eigenschaften Delimiter und CommaText einer TStringList. Delimiter ist das Trenn Zeichen, in KommaText werden die delimiter entfernt und als neue zeilen ausgegeben.

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Danniolo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 693



BeitragVerfasst: Do 23.06.05 21:40 
Sehr gut! Dankeschön!!!!!!!!!!!!!!!! :D