Controllare se una variabile contiene un valore - Script ASP
Dire che una variabile non è valorizzata o che il suo valore è vuoto non è la stessa cosa.
Il primo caso infatti, almeno in ASP, corrisponde ad impostare la variabile con NULL come valore, nel secondo caso il valore esiste ma è semplicemente una stringa vuota "".
In molti casi l'utilità finale della variabile è indipendente da quale dei due valori contiene, ma non sempre. E' importante conoscere questa differenza poiché alcune funzioni potrebbero comportarsi in modo completamente differente.
Ad esempio, il seguente script potrebbe non funzionare come ci si aspetti e non intercettare un valore nullo, o ancora, una stringa contenente solo spazi.
<%
if strVariabile = "" then
Response.Write(" La variabile NON contiene dei valori")
end if
%>
Come fare allora per essere certi di individuare con precisione una stringa che non contiene un valore utile?
Possiamo, ad esempio, ricorrere all'uso della funzione [F]Len()[/F] per verificare la lunghezza della variabile.
<%
if Len(Trim(strVariabile)) > 0 then
Response.Write("La variabile contiene un valore")
else
Response.Write(" La variabile NON contiene un valore")
end if
%>
Con la funzione [F]Trim()[/F] tagliamo gli spazi esterni dalla variabile accertandoci che anche le stringhe con spazi risultino vuote.
Con la funzione [F]Len()[/F] verifichiamo poi la lunghezza della stringa che solo nel caso restituisca un valore > 0 di conterrà dei caratteri utili.
Per comprendere meglio la versatilità della funzione proviamo a compararne l'esecuzione su 5 tipi di variabili di esempio.
Innanzi tutto creiamoci una funzione da richiamare all'occorrenza.
<%
function controllaPresenzaValore(variabile)
if not Len(Trim(variabile)) > 0 then
Response.Write("NON ")
end if
end function
%>
Ora lanciamo il test sui 5 valori selezionati.
<%
Dim aryVariabile(4), ii
aryVariabile(0) = "" ' valore vuoto
aryVariabile(1) = Null ' valore nullo
'aryVariabile(2) ' valore non definito
aryVariabile(3) = " " ' valore con spazi
aryVariabile(4) = "contenuto" ' valore pieno
for ii = 0 to Ubound(aryVariabile)
Response.Write("La variabile in posizione " & i & " dell'array ")
Response.Write(controllaPresenzaValore(aryVariabile(ii))
Response.Write("presenta valori")
next
%>
Il risultato dell'esecuzione è il seguente.
La variabile in posizione 0 dell'array NON presenta valori La variabile in posizione 1 dell'array presenta valori La variabile in posizione 2 dell'array NON presenta valori La variabile in posizione 3 dell'array NON presenta valori La variabile in posizione 4 dell'array presenta valori
Da notare come la variabile impostata a Null viene considerata valorizzata.
<%
function controllaPresenzaValore(variabile)
if (Trim(variabile) & "[]") = "[]" then
Response.Write("NON ")
end if
end function
%>
In questo caso, Ciascuna variabile che non contenga un valore reale verrà identificata come vuota.
Note: si ringrazia per la realizzazione di questo articolo optime per aver ripetutamente dato lo spunto con le sue risposte sul forum.

