torsdag 6. september 2007

Torsdag 6/9: Validering av inndata

Konstant sjekking av temperatur (korrekt og sannsynlig) er mulig som i koden under (finn en syntaksfeil!):
  Option Strict On
  Dim minTemp As Integer = -80, maxTemp As integer = 50

  Sub validerTemp (...) Handles txtboxTemp.TextChanged
    Dim innString as String = txtboxTemp.Text 
    Dim innTemp = 0  
    If IsNumeric ( innString ) Then
      innTemp = CInt ( innString ) ' sikring mot runtimefeil
      If IsTemp ( innTemp ) Then    
        temp = innTemp             ' sikring mot tulletemperatur
      Else
        MsgBox ( "Saerlig! " )
      End If
    Else
      MsgBox ( "Bare siffer godtas!" )
    End If
  End Sub

  Function IsTemp (ByVal temp as Integer) As Boolean
    Return temp >= minTemp And temp <= maxTemp
  End Function
CInt(x) gir feil ved runtime (under kjøring) hvis det forekommer annet enn tall og komma i "x" -- og: CInt(" 3 21 , 65 7") gir selvsagt "322". IsNumeric() forkaster minustegn, og fra salen ble det anbefalt at validering avventes inntil knapp var tastet!

Ingen kommentarer: