Bonjour,
Voilà, actuellement, je m'efforce de créer une fonction qui servira à analyser le contenu d'une grosse TextBox.
Celle-ci pourra contenir de très nombreuses combinaisons d'opérateurs et éléments à prendre en compte suivant l'opérateur (l'ajout de parenthèses pour donner une priorité sur les opérateur est également prévu).
Son contenu doit être analyser pour créer une requête SQL dynamique en fonction des besoins.
Pour cela, il me faut analyser chaque chose contenu dans cette TextBox.
Après quelques recherches, j'ai trouvé pas mal de sujets sur la recherche d'occurence dans des chaînes de caractères, la fonction Mid, InStr, au détail près que dans mon cas, je ne vois pas très bien comment les implémenter.
Exemple :
- La présence d'un + fera prendre en compte le chaîne qui précède le prochaine opérateur dans un "And" de la clause "WHERE" de la requête.
Enfin, avec de pouvoir finaliser ceci, il me faudrait trouver comment jeter un oeil sur chacun des caractère de la textbox (1 par 1). Un truc du genre ? :
On m'a mit sur la voie des compilateur, ce qui m'a fait trouver les Expréssions régulières, analyseurs lexicaux et synthaxiques, mais je vous avoue que pour mon niveau actuel, cela me parait extrêment flou.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 For Each "" In Me.TB_CRITERE.Text Next![]()
Peut-être que certains parmis pourraient m'orienter sur le sujet?
Mon idée de passer chaque caractère en revue est-elle correcte?
Ces éxpréssions régulière sont-elle vraiment si puissantes? Je veux dire, je pense pouvoir vérifier qu'il n'y a aucun caractère intru grâce à celles-ci, mais elles permettent également de vérifier des choses du genre, la présence d'un nombre pair de parenthèses? Que les opérateurs doivent être suivis d'une chaîne? Peut-être même préparer le chemin sur la gestion des priorités via les parenthèses?
Merci d'avance, j'espère ne pas avoir été trop confus, si quelque chose vous paraît un peu trop abstrait, faites le moi savoir, je m'efforcerais d'éclaircir ma pensée![]()
Partager