Corsi on-line
Chiudi
Newsletter:
  • Seguici su Facebook
  • Seguici su Twitter
  • Seguici su Google+
  • Seguici via RSS
  • Seguici col tuo Smartphone

Calcolare se un valore numerico è compreso tra due valori in VBScript

Articolo scritto da Luca Ruggiero

Qualche giorno fa mi sono trovato a lavorare in SQL ed a utilizzare la funzione BETWEEN per verificare che un parametro di ricerca fosse compreso tra due valori e mi sono reso conto di quanto possa tornare utile in certi casi una funzione del genere anche all'interno del codice di programmazione e non solo in una stringa di ricerca su di un database.

Allo scopo ho scritto una funzione che svolga l'analogo compito utilizzando il linguaggio VBScript.

(L'articolo continua più sotto...)

Dopo questa introduzione "tutta di un fiato" faccio una premessa: ho scelto di impostare questo articolo in VBScript lato client per dare a tutti la possibilità immediata di testarlo, ma lo stesso codice può essere utilizzato anche in ASP piuttosto che in Visual Basic, oppure, addirittura, seguendo la stessa logica che ho seguito io, diventa molto semplice scriverne uno in PHP, Java, Javascript o altri che, come il VBScript, non posseggono nativamente questa funzione tra le predefinite.

Vediamo il codice della funzione personalizzata Between

Function Between(MyValue, StartValue, EndValue)
    If IsEmpty(MyValue)Then
        Between = 0
    ElseIf IsEmpty(StartValue) Then
        Between = 0
    ElseIf IsEmpty(EndValue) Then
        Between = 0
    ElseIf IsNumeric(MyValue) = False Then
        Between = 0
    ElseIf IsNumeric(StartValue) = False Then
        Between = 0
    ElseIf IsNumeric(EndValue) = False Then
        Between = 0
    Else
        If MyValue >= StartValue And MyValue <= EndValue Then
            Between = 1
        Else
            Between = 0
        End If
    End If
End Function
la funzione accetta tre parametri: il primo è il numero da valutare se compreso o meno tra il valore di partenza ed il valore di destinazione; il secondo ed il terzo parametro, invece, sono proprio i numeri di partenza e di destinazione.

Utilizzando quindi banalmente la funzione come segue

document.write Between(1, 0, 10)
andiamo a verificare che 1 sia compreso tra 0 e 10; naturalmente lo è, quindi il risultato sarà "1" (vero).

In questo caso invece

document.write Between(25, 0, 10)
riceveremo "0" (falso) perchè 23 non è compreso tra 0 e 10.

Continuiamo ad esaminare la funzione. Effettuiamo una serie di verifiche condizionali per verificare che i parametri non siano lasciati vuoti e che siano di tipo numerico.

Per non accettare o per filtrare parametri numerici di tipo stringa è possibile utilizzare, all'interno della funzione personalizzata, la funzione di conversione predefinita "CInt".

Per questioni di spazio ho impostato una serie di condizioni per ogni singolo campo, ma per snellezza è possibile utilizzare una singola condizione, separando le singole verifiche con l'operatore "Or".

Vediamo adesso un utilizzo concreto di questa funzione in fase di verifica

Dim numero, inizio, fine
numero = 1
inizio = 0
fine = 10
If Between(numero, inizio, fine) = 1 Then
    Alert numero & " è compreso tra " & inizio & " e " & fine
Else
    Alert numero & " NON è compreso tra " & inizio & " e " & fine
End If
Specifico il numero da valutare, il valore di partenza e quello di destinazioni in delle variabili con un nome sensato; a questo punto effettuo una condizione utilizzando la nostra brava funzione predefinita come filtro condizionale.

Corsi
Corso ASP da ZeroCorso ASP da Zero
Imparare Microsoft ASP e VBScript da zero. A partire da 29 €.
Corso Visual Basic 6Corso Visual Basic 6
Realizzare applicazioni Desktop con VB6. A partire da 39 €.
Vedi anche...
Annunci

Mr.Webmaster

Pubblicità
Chi Siamo
Contattaci
Collabora
Note Legali
© 2003 - 2012 Mr.Webmaster - Il portale dei Webmaster Italiani - Tutti i diritti riservati | Powered by IKIweb Internet Media S.r.l. - PIVA 02848390122