Thema: Delphi Frage zu einer funktion

Einzelnen Beitrag anzeigen

Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#4

Re: Frage zu einer funktion

  Alt 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
  Mit Zitat antworten Zitat