lunedì 3 novembre 2014

Validazione dell'input

Quanto si scrive un programma, in certi passaggi l'utente deve inserire dei valori che molte volte dobbiamo restringere a solo certi argomenti. Per esempio ci deve scrivere solo un numero tra 1 e 100, oppure deve inserire una email. La validazione dell'input è eseguire un controllo su cosa ha scritto l'utente, verificando che sia giusto ed eventualmente correggerlo.
Cominciamo un campo dove bisogni scrivere un numero da 1 a 100:
Nel codice del campo scriviamo:

on keyDown pKey
    if pKey is not a number and pKey is not "." then
       beep
    else
       pass keyDown
    end if
end keyDown

on closeField
    if me > 100 then put 100 into me
    if me < 1 then put 1 into me   
end closeField

Notiamo che abbiamo sia un controllo alla fine, nel messaggio CloseField, che se siamo sopra o sotto i limiti corregge il valore del campo. Abbiamo, inoltre, che abbiamo l'imitato l'uso della tastiera ai numeri e il punto (messaggio KeyDown), se l'utente digita un altro tasto esce un suono ma non succede altro.

Adesso affrontiamo un altro caso, aggiungendo un campo dove l'utente deve inserire un indirizzo email.

Per verificare che l'indirizzo email sia corretto esistono tanti modi, uno è utilizzando un'espressione regolare; vediamo il codice da inserire in quest'altro campo:

on closeField
    if not matchText(me, "^[A-z0-9_\-\.]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]$") then
       answer "Not a valid email address."
       select text of me
    end if
end closeField

L'espressione regolare si può trovare su internet, moltissimi programmi utilizzano le espressioni regolari per controllare i testi.
Notate anche come il codice utilizzi me invece del the text of me, è un modo per far prima.