Another console method...


Break ON
$gNull=SetOption("Explicit","ON")

Dim $sRoomNumber,$iRoomNumberLen,$sErrorMessage,$sNumberPart

$sErrorMessage="ERROR: Room number must be 3 or 4 digits, followed by a letter a-e e.g. 405b"+@CRLF

While Not $sRoomNumber
"Enter a room number (e.g. 401e): " GetS $sRoomNumber
$sRoomNumber=LCase($sRoomNumber)
$iRoomNumberLen=Len($sRoomNumber)
Select
Case $iRoomNumberLen=4 OR $iRoomNumberLen=5
If Not InStr("abcde",Right($sRoomNumber,1))
$sErrorMessage
$sRoomNumber=""
Else
$sNumberPart=Left($sRoomNumber,$iRoomNumberLen-1)
If Not $sNumberPart=Cstr(Val($sNumberPart))
$sErrorMessage
$sRoomNumber=""
EndIf
EndIf
Case "LengthIsInvalid"
$sErrorMessage
$sRoomNumber=""
EndSelect
Loop

"Valid room number entered:" $sRoomNumber ?

Exit 0