Bonjour,
J’ai besoin de vos lumières. Dans un TEdit, sont enregistrées les informations suivantes :
(n°1 n°15 n°18 et n°24) cette chaine est délimitée par des espaces entre chaque numéro. Je souhaite compter le nombre de chiffre (1) dans la chaine ou le nombre de (n°1).
J’ai utilisé la fonction ci-dessous. Le problème de cette fonction, c’est qu’elle récupère tous les chiffres (1) même ceux qui appartiennent au (15) et au (18).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 function CountString(const S, StrToCount : string) : integer; var N : integer; begin result := 0; N := Posex(StrToCount,S,1); while N <> 0 do begin inc(result); N := Posex(StrToCount,S,N+Length(StrToCount)); end; end; Exemple dutilisation : Prcedure NB_Chiffre ; Var I :Integer ; Begin I :=StrtoInt( CountString(Edit1.text, 1) ; End ;
J’obtiens au total 3 puisque la fonction ne fait pas la différence entre le chiffre 1 et le chiffre 1 de 15
Merci infiniment pour votre aide.
Partager