Verifier une string = Alphanumerique ? [Résolu]

ELCouz 135 Messages postés jeudi 22 mars 2007Date d'inscription 25 juillet 2008 Dernière intervention - 18 mars 2008 à 18:33 - Dernière réponse : ELCouz 135 Messages postés jeudi 22 mars 2007Date d'inscription 25 juillet 2008 Dernière intervention
- 22 mars 2008 à 19:11
Bonjour,

Quelqu'un aurait un conseil pour faire une function qui verifie si la string est alphanumerique ou non ?

et retourne true or false,  false si la string contient des trucs autre que [0-9 ,a-z et A-Z]

Merci beaucoup de votre aide !

ps: je connais le truc du keydown et regarder la touche enfoncer mais moi jveut verifier un TEdit de facon a eviter qun malin copie coller des symboles afin de tout faire planter ;)

Bonne journee !

Laurent
Afficher la suite 

15 réponses

Répondre au sujet
Cirec 4217 Messages postés vendredi 23 juillet 2004Date d'inscription 3 avril 2018 Dernière intervention - 19 mars 2008 à 00:15
+3
Utile
Regarde bien le code ... on peut avoir un controle sur la chaine de caractères qui est sur le point d'être collé.

Cette quoi cette manille quand on vous dit qu'il y a tout dedans faites au moins l'effort de regarder le code !!!!!
ça ne figure pas dans la description puisque cette possibilité a été ajouté par la suite

Titre du code source  CONTROLER UN "COPIER/COLLER" DANS UN TEDIT
Il peut entre autre Interdir un Copier/Coller mais pas seulement

 
@+
Cirec

<hr siz="" />
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Cirec
ELCouz 135 Messages postés jeudi 22 mars 2007Date d'inscription 25 juillet 2008 Dernière intervention - 21 mars 2008 à 23:07
+3
Utile
Bonjour,

J'étais interesser apropos du truc de gestion de copier coller mais jme suis arranger quelque chose de plus simple encore et de TRES efficace (et flexible)...

sur un bouton:

if edit1.Text <> regex(edit1.Text,'\w+') then showmessage('pfff ta mit autre chose que des chiffre ou des numeros !!!');
else toncodeaexecuter_car_tout_est_ok;

la function regex:

function Regex (const InputString,Expression: string) : string;
 var
  r : TRegExpr;
 begin
  r := TRegExpr.Create;
  try
     r.Expression := Expression;
     if r.Exec (InputString)
      then Result := r.Match [0];
    finally r.Free;
   end;
end;

elle utilise une composante (non-vcl) qui se nomme TRegExpr... cest le truc a utiliser pour faire du regular expression avec Delphi ... en plus ce truc est gratuit !!!

http://regexpstudio.com/TRegExpr/TRegExpr.html

Bref, jai poster le code pour ceux qui aurais ete interesser par cette autre solution !

Bonne journee !

Laurent
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ELCouz
cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention - 18 mars 2008 à 21:56
0
Utile
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if  not (key in ['a'..'z', 'A'..'Z', '0'..'9']) then
key := #0;
end;

cantador
Commenter la réponse de cs_cantador
Cirec 4217 Messages postés vendredi 23 juillet 2004Date d'inscription 3 avril 2018 Dernière intervention - 18 mars 2008 à 22:27
0
Utile
Salut,

regarde cette source tu y trouveras tout ce dont tu as besoins

 
@+
Cirec

<hr siz="" />
Commenter la réponse de Cirec
ELCouz 135 Messages postés jeudi 22 mars 2007Date d'inscription 25 juillet 2008 Dernière intervention - 18 mars 2008 à 23:20
0
Utile
Bonjour,

Je ne veut pas interdire un copier coller je veux juste empecher que quelque copy paste des informations errones...
C-a-d verifier l'information seulement que lorsque jappuie sur le boutton OK.

Empecher un copier coller ne fera que limiter mon programme qui «deal» avec beaucoup de donnee redondante (Numero de reperage de colis provenant du web)... sa serais tannant pour lutilisateur de rentrer les numero de 10 a 30 caracteres a la main!

@cantador
et si je fait clic droit sur le champ et puis coller ? ;)

Merci de votre aide !

Laurent
Commenter la réponse de ELCouz
ELCouz 135 Messages postés jeudi 22 mars 2007Date d'inscription 25 juillet 2008 Dernière intervention - 18 mars 2008 à 23:24
0
Utile
ReBonjour,

J'ai penser a une function qui loop (pour la longueur de la string) et verifie caractere par caratere si elle contient seulement des char entre [0-9 ,a-z et A-Z]....

Une idee ?

Merci

Laurent
Commenter la réponse de ELCouz
Cirec 4217 Messages postés vendredi 23 juillet 2004Date d'inscription 3 avril 2018 Dernière intervention - 19 mars 2008 à 00:18
0
Utile
Regarde les procedures OnPaste dans UMain.pas et tu comprendra que tu as un controle totale sur ce qui est collé !

 
@+
Cirec

<hr siz="" />
Commenter la réponse de Cirec
ELCouz 135 Messages postés jeudi 22 mars 2007Date d'inscription 25 juillet 2008 Dernière intervention - 19 mars 2008 à 23:29
0
Utile
Merci javais lu trop vite ton post sur la gestion du copier coller

Bonne journee !

Laurent
Commenter la réponse de ELCouz
Cirec 4217 Messages postés vendredi 23 juillet 2004Date d'inscription 3 avril 2018 Dernière intervention - 20 mars 2008 à 00:12
0
Utile
Si la réponse te convient n'oublie pas de clique sur : Réponse Acceptée
Merci

 
@+
Cirec

<hr siz="" />
Commenter la réponse de Cirec
cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention - 21 mars 2008 à 18:56
0
Utile
Si tu ne veux pas utiliser la technique à propos du copier coller..
N'oublie pas qu'il te faudra bien à un moment déclencher une validation et cette dernière pourra à cet instant vérifier le contenu du TEdit et donc l'autoriser ou non.
et dans le cas où la donnée n'est pas correcte, on peut même vider le TEDIT et en informer l'utilisateur et attendre une nouvelle entrée.

cantador
Commenter la réponse de cs_cantador
cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention - 22 mars 2008 à 12:59
0
Utile
Intéressant mais rares néanmoins 
sont les applis ayant un souci récurent d'intégrité de la saisie
et quelquefois il est plus simple d'écrire quelques lignes de code plutôt que d'introduire une unité supplémentaire traitant TOUS les cas pouvant se présenter.

Tout dépend des besoins..

cantador
Commenter la réponse de cs_cantador
Cirec 4217 Messages postés vendredi 23 juillet 2004Date d'inscription 3 avril 2018 Dernière intervention - 22 mars 2008 à 15:48
0
Utile
Mouais,

ça fait pas très propre tous ça !!!

Avecta solution : l'utilisateur peut rentrer des données érronnées et il en est averti qu'au moment ou il appuie sur le bouton ...

Alors que le code que je te proposais permet d'intervenir avant que le caractère ou la chaine de caractères ne soit affiché dans le TEdit et cela en toute transparence pour l'utilisateur.

Et tu peux même faire ceci:

Admetton que l'utilisateur doit entrer un numéro de téléphone au format :
"xx-xx-xx-xx-xx" et qu'il colle la chaine suivante "Tel : 01/02/03/04/05" avec mon code l'utilisateur verra s'afficher : "01-02-03-04-05" et le texte dans le presse-papier lui reste inchangé ce qui veut dire qu'un coller dans un autre TEdit (non controlé) s'affichera : "Tel : 01/02/03/04/05". Du coup l'utilisateur n'aura pas besoin de re-saisir les données, aucune erreur ne vient perturber le cour des choses.

Vous êtes quand même marrant ... le problème du copier/coller est un problème récurant, que l'on trouve sur beaucoup de forum, qui est resté sans solution pendant très longtemps et maintenant qu'une solution existe (flexible, propre dont le code et la mise en oeuvre sont d'une simplicité enfantine) vous repartez dans des bricolages douteux !!!! j'avoue que j'ai beaucoup de mal à comprendre votre logique.

 
@+
Cirec

<hr siz="" />
Commenter la réponse de Cirec
cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention - 22 mars 2008 à 16:57
0
Utile
Oui cirec (il a encore trouvé..)
Il faudra quand même prévoir un stockage des options prises avec un contrôle administrateur.

cantador
Commenter la réponse de cs_cantador
ELCouz 135 Messages postés jeudi 22 mars 2007Date d'inscription 25 juillet 2008 Dernière intervention - 22 mars 2008 à 19:07
0
Utile
J'utilisais deja l'unité TRegExpr bien avant donc pour moi , il n'y a pas grand chose qui se sont rajouter dans mon code...
Commenter la réponse de ELCouz
ELCouz 135 Messages postés jeudi 22 mars 2007Date d'inscription 25 juillet 2008 Dernière intervention - 22 mars 2008 à 19:11
0
Utile
PS: Cirec jvais lutiliser ton code promis !!...quand je ferais un autre programme ou jaurais besoin dune verification des donnees
Commenter la réponse de ELCouz

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.