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.

Nel caso si tratti di un problema, possiamo implementare un'alternativa alla funzione prima descritta controllando la presenza di valori e non la lunghezza della variabile con il seguente script.

<%

function controllaPresenzaValore(variabile) 
  if (Trim(variabile) & "[]")&nbsp; = "[]" 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.


asp.weppos.com e asp.weppos.it sono di proprietà di Simone Carletti.
Scopri il mio sito o visita il mio Simone Carletti's profile on LinkedIn