tux22
Messages postés20Date d'inscriptionmardi 1 novembre 2005StatutMembreDernière intervention25 juillet 2006
-
5 janv. 2006 à 21:22
tux22
Messages postés20Date d'inscriptionmardi 1 novembre 2005StatutMembreDernière intervention25 juillet 2006
-
7 janv. 2006 à 21:15
Salut a tous,
Je voudrais savoir le procédé pour que mon aplication detecte des
caractères placés dans un TEdit ou plus generale dans les zones de
texte. Et savoir si ce procédé et adaptable a chaque demande de
caractère a trouver. Je souhaite savoir si il y a presence de certains
caractere dans les certains que taperas les utilisateurs.
Si qqun connait la reponse a ma question, pourait-il expliquer les
diferentes etapes car j'ai trouver sur google des codes pour faire de
la recherche de caractere mais sans explication et je n'y comprend rien
et mon but et de comprendre avant tout.
sisi231
Messages postés207Date d'inscriptionmercredi 5 mars 2003StatutMembreDernière intervention29 mars 20135 5 janv. 2006 à 21:32
lu
Pour récupérer le texte de Tedit1 :
mon_texte := edit1.text;
Pour récupérer le caractère n° 3 de mon_texte :
mon_caractere := mon_texte[3];
pour que ça marche il faut que tu déclare mon_texte et mon_caractere, pour-ce ajoute juste avant le mot begin :
mon_texte :string;
mon_caractere : char;
sisi231
Messages postés207Date d'inscriptionmercredi 5 mars 2003StatutMembreDernière intervention29 mars 20135 5 janv. 2006 à 21:57
Excuse j'ai lu trop vite : tu veux faire de la recherche d'un certain caractère ?
exemple :
mon_texte :string;
i : integer;
i := pos (mon_texte);
if i =0 then
showmessage ('ya pas de p dans mon_texte !')
else
showmessage('ya au moins un p dans mon texte et le premier " p " est le caractère n°'+inttostr(i)+' de mon_texte');
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 6 janv. 2006 à 01:31
Salut,
si c'est 4 fois le même caractère à la suite tu peux faire ceci :
pos('pppp', mon_texte)
si non tu peux essayer ça :
Function NombredeFois(aChar : Char; aStr : String): Integer;
Var I : Integer;
Begin Result := 0;
For I : = 1 To Length(aStr) Do If aStr[I] = aChar Then Inc(Result)
End;
et tu peux faire par exemple comme ceci :
If NombredeFois('p', Edit1.Text) = 4 Then ....
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 6 janv. 2006 à 01:48
petite précision, dans NombredeFois(aChar : Char; aStr : String): Integer;
aChar est CaseSensitive c'est a dire que 'p' n'est pas égale à 'P'
si tu ne veux pas faire la différence entre majuscule et minuscule il faut modifier le code comme suit :
Function NombredeFois(aChar : Char; aStr : String): Integer;
Var I : Integer;
Begin Result := 0;
For I : = 1 To Length(aStr) Do If UpCase(aStr[I]) = UpCase(aChar) Then Inc(Result)
End;
sisi231
Messages postés207Date d'inscriptionmercredi 5 mars 2003StatutMembreDernière intervention29 mars 20135 7 janv. 2006 à 14:29
if (mon_caractere := mon_texte[3]='.') then
>> met un simple = (symbole d'égalité) et non le symbole d'affectation :=
Deuxio : tu devrais prendre l'habitude d'utiliser la méthode append plutôt que add car contrairement à cette dernière elle n'a pas de valeur de retour.