Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
Delphi 12 Athens
|
Re: Frage zu einer funktion
4. Dez 2003, 15:49
Hier meine Lösung:
Delphi-Quellcode:
procedure CountWords(Txt: AnsiString; var Words, Spaces, SentenceChars,
OtherChars: Integer);
var
InLegalWord: Boolean;
I: Integer;
const
SENTENCE_SET = '.,;!?';
begin
Words := 0;
Spaces := 0;
SentenceChars := 0;
InLegalWord := False;
for I := 1 to Length(Txt) do
begin
if Txt[I] in ['A'..'Z', 'a'..'z'] then
begin
InLegalWord := True;
end else begin
if InLegalWord then
begin
Inc(Words);
InLegalWord := False;
end;
if Txt[I] in [#0..#32] then
Inc(Spaces)
else if Pos(Txt[I], SENTENCE_SET) > 0 then
Inc(SentenceChars)
else
Inc(OtherChars);
end;
end;
end;
Der Aufruf erfolgt wie folgend:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
Words, Spaces, SentenceChars, OtherChars: Integer;
begin
CountWords(Memo1.Text, Words, Spaces, SentenceChars, OtherChars);
Label1.Caption := IntToStr(Words);
Label2.Caption := IntToStr(Spaces);
Label3.Caption := IntToStr(SentenceChars);
Label4.Caption := IntToStr(OtherChars);
end;
... ...
Daniel Lizbeth Ich bin nicht zurück, ich tue nur so
|
|
Zitat
|