Compter que les lignes utilisées dans un Tmemo

Résolu
marin1617 Messages postés 43 Date d'inscription samedi 3 août 2013 Statut Membre Dernière intervention 17 décembre 2019 - 18 sept. 2013 à 17:35
jordane45 Messages postés 37538 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 7 juin 2023 - 20 sept. 2013 à 16:46
Bonjour, je cherche à compter que les lignes écrites dans un Tmemo.
pour le moment avec

label1.Caption := ('Nb  d'' évènements  ' + inttostr (memoRecept.lines.Count)) ;


Cela me compte toutes les lignes.
Par exemple :
bonjour

salut
aurevoir

Doit donner 3 lignes, et non 4

Merci de votre aide

4 réponses

jordane45 Messages postés 37538 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 7 juin 2023 341
18 sept. 2013 à 17:56
Bonjour,
En bouclant sur les lignes et en vérifiant si elles ne sont pas vide..

Quelque chose du genre :
  for i := 0 to memoRecept.Lines.Count - 1 do
    if memoRecept.Text[i]<>"" then count := count + 1;
      ShowMessage('Nb Lines count: ' + IntToSTr(count))


0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
19 sept. 2013 à 13:34
Salut,

@Jordane45 :

tu es proche de la solution mais une petite erreur c'est glissée dans ton code ...

le plus surprenant c'est qu'il donne un résultat correct avec le contenu donné par Marin1617
mais il suffit d'ajouter quelques lignes pour voir que ça ne colle plus.

C'est l'utilisation de la propriété "Text" du mémo qui est inapproprié ... elle renvoie tout le texte contenu dans le mémo. ou caractère par caractère en faisant Text[I].

il faut utiliser la propriété "Lines[I]" qui elle renvoie le contenu ligne par ligne:
var
  I, aCount: Integer;
begin
  for i := 0 to memoRecept.Lines.Count - 1 do
    if memoRecept.Lines[i]<>'' then acount := acount + 1;
      ShowMessage('Nb Lines count: ' + IntToSTr(acount));
end;

0
jordane45 Messages postés 37538 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 7 juin 2023 341
19 sept. 2013 à 13:56
hello
tu es proche de la solution
Pour quelqu'un qui n'a jamais (mais vraiment JAMAIS) touché au DELPHI je peux en être fier alors :-)
Juste un peu de logique et de savoir faire concernant l'utilisation des moteurs de recherche ^^

L'essentiel c'est que quelqu'un ai pu lui donner LA bonne réponse :-p

Bonne journée à vous.
0
marin1617 Messages postés 43 Date d'inscription samedi 3 août 2013 Statut Membre Dernière intervention 17 décembre 2019
19 sept. 2013 à 14:46
Bonjour et un grand merci jordane45 et Cirec

Voici comment j'ai fait

 richEditRecept.Lines.Add(trameCp);  // ecriture dans le RicheditRecept
            Cpt_Evt := Cpt_Evt + 1;


Et dans un Timer
label5.Caption :=  IntToStr (Cpt_Evt);
0
jordane45 Messages postés 37538 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 7 juin 2023 341
19 sept. 2013 à 16:02
Si la question est résolue, Merci de clore cette discussion
"MARQUER EN RESOLU"
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
20 sept. 2013 à 16:09
marin1617 a dit:
Voici comment j'ai fait

richEditRecept.Lines.Add(trameCp);  // ecriture dans le RicheditRecept
            Cpt_Evt := Cpt_Evt + 1;

sauf que si TrameCp vaut '' tu ajoutes une ligne vide qui sera comptabilisée

et pourquoi mettre ceci dans un Timer:
label5.Caption := IntToStr (Cpt_Evt);

tu pouvais simplement le mettre à la suite de "Cpt_Evt := Cpt_Evt + 1;"
ce qui éviterait d'occuper inutilement le processeur avec un Timer qui va tourner continuellement
et rafraichir l'affichage même quand c'est pas nécessaire !!!

jordane45 à dit:
Pour quelqu'un qui n'a jamais (mais vraiment JAMAIS) touché au DELPHI je peux en être fier alors :-)
Alors là oui tu peux être fier et je dis même bravo
peut être que tu devrais t'y mettre ^^
tu sembles avoir des facilitées
0
jordane45 Messages postés 37538 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 7 juin 2023 341
20 sept. 2013 à 16:46
peut être que tu devrais t'y mettre ^^
tu sembles avoir des facilitées
Merci mais j'ai déjà suffisamment à faire avec les autres ^^
Pour ce qui est des "facilités".. et bien... disons qu'à force de chercher des infos sur différents langages..on apprend vite "comment" chercher pour n'importe lequel. ^^

Bonne continuation.

Cordialement,
Jordane
0