Compteur de lettres et mots [Résolu]

Signaler
Messages postés
2
Date d'inscription
jeudi 7 décembre 2000
Statut
Membre
Dernière intervention
14 mai 2008
-
Messages postés
24
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
27 juillet 2010
-
Bonjour mesdames zé messieurs,


    Je suis débutant en Delphi, et j'aimerais réaliser un petit programme (Simple, me disait-on), qui compterait le nombre de mots et de lettres entrés dans un edit à l'aide d'un code comportant une boucle 'for'. 

En plus précis on aurait:
-un edit
-un memo
-un bouton.

Lorsque l'on appuie sur le bouton, j'aimerais que la phrase entrée dans l'edit soit comptée et affichée dans le memo.
 Un petit exemple qui me facilitera l'explication:
      Si la phrase était la suivante "cette phrase là" on verrait ceci dans le memo après avoir appuyé sur le bouton:
###memo1###
Cette : 5 lettres
phrase: 6 lettres
là: 2 lettres
Nombre de mots: 3

Voili voilou... je croise les doigts en espérant que quelqu'un aura la solution à mon problème.

Merci.

5 réponses

Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
13
Regarde ça : (pas de virus ni rien ;p)
Il me semble que c'est ce que tu cherches à faire.
Montre nous là où tu bloques pour que tu puisses le faire par toi même :)
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
13
Salut !
Où en es-tu dans le codage ?
Peux tu nous montrer ton code (même si il ne fonctionne pas encore) ?
Montre nous à quel(s) endroit(s) tu bloques, qu'est ce qui te pose problème.
A bientôt !
Messages postés
2
Date d'inscription
jeudi 7 décembre 2000
Statut
Membre
Dernière intervention
14 mai 2008

Désolé pour ce temps de réponse quelque peu long :) Je cherchais désespérément comment finir ce programme, merci pour ton aide, je crois finalement avoir réussi comme il faut, voici tout-de-même le code:

var
  Form1: TForm1;



implementation


{$R *.dfm}



procedure TForm1.Button1Click(Sender: TObject);


var

    Texte: String;
    Mot: String;
    NbMots: Integer;
    NbCar: Integer;
    i: Integer;
begin
   Texte:= edit1.Text;
   Mot:='';
   NbMots:=0;
   NbCar:=0;

          for i: =1 to length(Texte) do
                if Texte[i] = ' ' then
                       begin
                               Memo1.Lines.Add(Mot+inttostr(nbcar));
                               NbCar:=0;  //Reset de la variable contenant le nombre de caractères lorsqu'on rencontre un espace
                               inc(NbMots);
                       end
                else
                       begin
                              inc(NbCar);
                              Mot: =Mot+Texte[i];
                       end;



end;




end.


Ca pourra peut-être servir à quelqu'un ici, qui sait?  Bonne journée, et merci encore !
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
13
Moi j'avais ça :



procedure Split (const Delimiter: Char; Input: string; const Strings: TStrings) ;
begin
 Assert(Assigned(Strings)) ;
 Strings.Clear;
 Strings.Delimiter := Delimiter;
 Strings.DelimitedText := Input;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 fTs: TStringList;
 i: integer;
begin
 fTs := TStringList.Create;
 try
  Split(' ', Edit1.Text, fTs) ;
 finally
  for i:=0 to fTs.Count-1 do
   Memo1.Lines.Add(Format( '%s : %d lettre(s)' , [ fTs.Strings[i] , Length(fTs.Strings[i]) ] ));
  Memo1.Lines.Add(Format('Nombre de mots : %d mot(s)',[fTs.Count]);
  fTs.Free;
 end;
end;
Messages postés
24
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
27 juillet 2010

JulioDelphi apparament vous tré Dueé!!! Mais Bizzard!;