Compter le nombre de mots dans une chaîne
Voici une petite fonction simple et efficace pour compter le nombre de mots dans un texte.
L’idée est d’utiliser un TStringList configuré avec un espace comme séparateur, puis d’ignorer les entrées vides après un Trim.
function CountWords(const Texte: string): Integer;
var
ListeMots: TStringList;
I: Integer;
Mot: string;
begin
ListeMots := TStringList.Create;
try
ListeMots.Delimiter := ' ';
ListeMots.DelimitedText := Texte;
Result := 0;
for I := 0 to ListeMots.Count - 1 do
begin
Mot := Trim(ListeMots[I]);
if Mot <> '' then
Inc(Result);
end;
finally
ListeMots.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(IntToStr(CountWords('Voici un exemple de texte')));
end;Un petit clic (J'aime) qui fait plaisir !