Salve, avrei bisogno di leggere i valori passati attraverso una querystring, ovvero
?nome=antonio&cognome=Prisco........
Non ho trovato nessuna funzione che mi faccia il parsing della stringa.
Avete una soluzione?
Grazie
Potresti utilizzare Regex.
Con un pattern come (\w*=\w*) ottieni dei gruppi del tipo: nome=antonio, cognome=Prisco etc
Se invece provi con (=\w*) ottieni i soli valori preceduti dal segno uguale (es. =antonio)
Possibile che non esista un modo che faccia il parsing di una querystring ed ottenere i valori semplicemente con una funzione del tipo:
get_value("nome") ?
Dove vuoi leggere il querystring? Se vuoi farlo su .NET puoi usare il Params Collection di
Request oggetto. Vedi questo codice in VB.NET:
B4X:
Dim sParams() As String = Request.Params.AllKeys
Dim sQ As String = "-"
For ii As Integer = 0 To sParams.GetUpperBound(0)
sQ &= sParams(ii) & "=" & Request.Params(sParams(ii)) & "-"
Next
Su B4A puoi usare il codice seguente in un modulo di codice (p.e. CommonFunctions):
B4X:
Sub Split(Text As String, Delimiter As String) As String()
Return Regex.Split(Delimiter, Text)
End Sub
Poi puoi chiamarlo dal tuo codice così:
B4X:
Dim sQrs() as String
sQrs = CommonFunctions.Split(Querystring,"&")
Dim m as Map
m.Initialize
For i = 0 to sQrs.size - 1
Dim sM() as String
sM = CommonFunctions.Split(sQrs(i),"=")
m.Put(sM(0),sM(1))
Next
Questi due snippets di codice ti daranno una Map con i paia nome-valore.