Italian Leggere valore da una querystring

kkkpe

Member
Licensed User
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
 

udg

Expert
Licensed User
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)
 

kkkpe

Member
Licensed User
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") ?
 

hatzisn

Well-Known Member
Licensed User
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.
 
Last edited:
Top