ciao,
ho un problema che pensavo di risolvere con le regexp.
dal database prelevo un elenco delle tabelle. a questo punto devo controllare quali tabelle sono contenute nelle diverse pagine della mia applicazione.
con fso recupero ogni pagina ed il relativo contenuto. a questo punto ho scritto la seguente funzione per parsare la pagina:
codice:
Function EstraiOggettiDb(stringa , stringaPattern)
Dim tmpArray, v, rex
Set rex = Server.CreateObject("VBScript.RegExp")
Set dic = Server.CreateObject("Scripting.Dictionary")
dic.CompareMode = vbTextCompare
With rex
.Multiline = True
.Global = True
.IgnoreCase = True
.pattern = "(" & stringaPattern & ")"
Set tmpArray = .Execute(stringa)
For Each v In tmpArray
If Not dic.Exists(CStr(v)) Then
dic.Add CStr(v), v
End If
Next 'v
Set EstraiOggettiDb = dic
End With
Set dic = Nothing
End Function
la funzione riceve in input
stringa: il contenuto di una pagina
stringaPattern: un elenco delle tabelle separate da pipeline
e restituisce un dictionary contenente le tabelle utilizzate in quella pagina.
così com'è funzia, ma mi piacerebbe migliorarla un po': avrei bisogno, per ex, che venissero saltate le stringhe commentate tipo:
'sql = "SELECT * FROM miaTabella"
e se vi viene in mente qualcos'altro è ben accetto