Bonjour,
Je suis déjà venu ici pour trouver l'aide nécessaire à la réalisation d'un Parser, chose réussie d'ailleurs. Cependant, cet élément seul ne me permettait aucune vérification de résultat, et rendait donc la fonction peu stable, et peu facile à gérer au niveau des Exceptions.
De ce fait, je doit revoir mon analyse de texte sur plusieurs niveaux au lieu d'un seul.
A l'origine j'avais un parcours du texte caractère par caractère pour générer une requête SQL directement (mauvaise option)
Maintenant, je dispose d'une fonction permettant la génération d'un Tableau contenant les différents éléments de mon texte :
Ceci met donc les éléments dans le tableau comme suis :
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 Private Function AnalyserMotsCles2(ByRef strRequete As String, ByRef tabStockage() As String) As Boolean Dim strMotsCles As String = "" Dim intVerifParentheses As Integer = 0 Dim bTmp As Boolean = False Dim i As Integer = -1 'Parcours du contenu de la TextBox caractère par caractère For Each c As Char In Me.TB_CRITERES.Text If i < 100 Then Select Case c Case "+" i += 1 tabStockage(i) = c bTmp = True Case "-" i += 1 tabStockage(i) = c bTmp = True Case "&" i += 1 tabStockage(i) = c bTmp = True Case "(" i += 1 tabStockage(i) = c bTmp = True Case ")" i += 1 tabStockage(i) = c bTmp = True Case Else If bTmp = True Then i += 1 bTmp = False End If strMotsCles += c tabStockage(i) = strMotsCles End Select Else MsgBox("Nombre de paramètres trop importants") Return 0 End If Next Return 1 End Function
Case n°1 : "("
Case n°2 : "mot1"
Case n°3 : "-"
Case n°4 : "mot2"
Etc...
Il faudrait ensuite, que je transforme ce tableau en une sorte d'arbre de syntaxe abstraite, par plusieurs parcours du tableau.
(Chose qui est bien abstraite à mes yeux, c'est le cas de le dire)
De cet arbre, je devrait parcourir sa composition pour en générer une requête SQL (dynamique donc). Enfin sur ce plan, je pense pouvoir y parvenir dès le moment où je saurais comment générer l'arbre.Enfin j'espère.
En bref, j'aimerais savoir si quelqu'un saurait m'orienter vers la génération de cet arbre 'virtuel', si je puis dire. N'hésitez pas à demander un peu plus de précision la ou j'en ai manqué.
Merci d'avance
Partager