Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour à tous,
Je souhaiterai, en filtrant une datawindow, pouvoir ramener toutes les lignes ayant par exemple la valeur D en 2ème position dans ma colonne bidule...
Exemple : l'utilisateur saisit ?D* et ca me prendrait toutes les lignes commencant par n'importe quel caractère, ayant 2 en second puis n'importe quels caractères sur n'importe quelle longueur.
Pour cela, il me faut utiliser la fonction match mais je me perds dans les metacharacters.
Quelqu'un peut-il m'aider svp ?
Merci d'avance
Dernière modification par Sebou (17-12-2012 12:21:45)
Hors ligne
pourquoi utiliser match()
dwcontrol.Find ( "bidule like '_D%'" , 1, dwcontrol.rowcount() )
devrait suffire non ?
Dernière modification par rincevent (17-12-2012 11:37:18)
Hors ligne
Bonjour,
ou alors, si c'est pour afficher, un SetFilter() et un Filter() sur la DW.
string ls_filtre ls_filtre = "bidule like '_D%'" dw_affichee.SetFilter(ls_filtre) dw_affichee.Filter( )
Hors ligne
Bonjour,
sinon la syntax pour match c'est :
match( quelque_chose, "^.D.*")
et le ".*" final n'est pas utile ici, donc :
match( quelque_chose, "^.D")
Hors ligne
Ah ok, tout simplement : le . remplace le caractère que je cherche et il n'y a pas besoin de mettre * pour terminer.
Merci
Hors ligne
Pour être précis (beaucoup de gens se grattent la tête avec les motifs de regex) :
- le signe "." remplace n'importe quel caractère
- le signe "*" indique que le caractère juste avant l'étoile peut être absent et peut aussi se répéter (cardinalité 0,n)
- le signe "^" indique qu'on valide à partir du début de la ligne (et ça ne sera pas valide si le D précédé d'un caractère quelconque n'est pas au début de la ligne)
Comme on ne précise pas la fin de la ligne (avec un caractère "$") qu'on dise
- à partir du début, je veux un "D" précédé de n'importe quoi et suivi de n'importe quoi (ou pas)
- ou à partir du début, je veux un "D" précédé de n'importe quoi
Ça revient au même
Hors ligne
Merci pour les explications seki : toujours bon à savoir ^^
Hors ligne