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

marin1617
Messages postés
42
Date d'inscription
samedi 3 août 2013
Dernière intervention
15 août 2014
- 18 sept. 2013 à 17:35 - Dernière réponse : jordane45
Messages postés
23223
Date d'inscription
mercredi 22 octobre 2003
Statut
Contributeur
Dernière intervention
14 novembre 2018
- 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 

Votre réponse

7 réponses

jordane45
Messages postés
23223
Date d'inscription
mercredi 22 octobre 2003
Statut
Contributeur
Dernière intervention
14 novembre 2018
- 18 sept. 2013 à 17:56
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
Cirec
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
3 août 2018
- 19 sept. 2013 à 13: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
23223
Date d'inscription
mercredi 22 octobre 2003
Statut
Contributeur
Dernière intervention
14 novembre 2018
- 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.
Commenter la réponse de Cirec
marin1617
Messages postés
42
Date d'inscription
samedi 3 août 2013
Dernière intervention
15 août 2014
- 19 sept. 2013 à 14:46
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
23223
Date d'inscription
mercredi 22 octobre 2003
Statut
Contributeur
Dernière intervention
14 novembre 2018
- 19 sept. 2013 à 16:02
Si la question est résolue, Merci de clore cette discussion
"MARQUER EN RESOLU"
Commenter la réponse de marin1617
Cirec
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
3 août 2018
- 20 sept. 2013 à 16:09
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
23223
Date d'inscription
mercredi 22 octobre 2003
Statut
Contributeur
Dernière intervention
14 novembre 2018
- 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
Commenter la réponse de Cirec

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.