Public Function ValidateStrategyFilter(strategia As String) As Boolean
Dim Operatori As New String[]
Dim Operandi As New String[]
Dim Stringa As String
If strategia = "" Then Return False
For Each stringa In Split(strategia, " ")
stringa = Trim(stringa)
If (LCase(stringa) = "AND") Or (LCase(stringa) = "OR") Or (LCase(stringa) = "NOT") Then
Operatori.Add(UCase(stringa))
Else
Operandi.Add(LCase(stringa))
Endif
Next
If (Operandi - Operatori) <> 1 Then Return False
Return True
End
il problema e' che in teoria ci potrebbero essere casi particolari come:
italiani AND rock AND NOT 80
oppure
NOT sanremo
........
il primo (italiani AND rock AND NOT 80) potrei costringerli a scrivere (italiani AND rock NOT 80), ma il secondo?
...servirebbe un parser gia' costruito ... una grande sfida del 900