Compter que les lignes utilisées dans un Tmemo [Résolu]

Messages postés
42
Date d'inscription
samedi 3 août 2013
Statut
Membre
Dernière intervention
15 août 2014
- - Dernière réponse : jordane45
Messages postés
26917
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 décembre 2019
- 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
Afficher la suite 

4 réponses

Messages postés
26917
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 décembre 2019
318
0
Merci
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))


Commenter la réponse de jordane45
Messages postés
3809
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
1 septembre 2019
34
0
Merci
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;

jordane45
Messages postés
26917
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 décembre 2019
318 -
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.
Commenter la réponse de Cirec
Messages postés
42
Date d'inscription
samedi 3 août 2013
Statut
Membre
Dernière intervention
15 août 2014
0
Merci
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);
jordane45
Messages postés
26917
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 décembre 2019
318 -
Si la question est résolue, Merci de clore cette discussion
"MARQUER EN RESOLU"
Commenter la réponse de marin1617
Messages postés
3809
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
1 septembre 2019
34
0
Merci
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
jordane45
Messages postés
26917
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 décembre 2019
318 -
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
Commenter la réponse de Cirec