Microsoft Small Basic

Program Listing: PNM585-2
' Challenge of the month October 2013 Email validation By NaochanON PNM585-2

TextWindow.Write(" Enter email address.... " )
email= TextWindow.Read()
TextWindow.WriteLine(" ")
check()

Sub check
ValidChars = "abcdefghijklmnopqrstuvwxyz0123456789!#$%&.'*+-/=?^_`{|}~" '
Pos_Atmark = Text.GetIndexOf(email, "@")
domain= Text.GetSubTextToEnd(email,Pos_Atmark +1)
Length = Text.GetLength(email)
CRLF= Text.GetCharacter(13)+Text.GetCharacter(10)
InValid=""
'---------------------------------------------------------------------------------------------------------------------------
If Text.IsSubText(email,"..") then
Invalid=Invalid+"Invalid : with .. " +CRLF ' include ".."
elseif Text.GetSubText(email,Pos_Atmark-1,1)="." then
Invalid=Invalid+"Invalid : endwith . in Local" +CRLF ' endwith "." in Local
elseif Text.GetSubText(email,1,1)="." then
Invalid=Invalid+"Invalid : startwith . in Local" +CRLF ' startwith "." in Local
elseif Text.GetSubText(email,length,1)="." then
Invalid=Invalid+"Invalid : endwith . in domain" +CRLF ' endwith "." in domain
elseif Text.GetSubText(email,1,1)="." then
Invalid=Invalid+"Invalid : startwith . in domain" +CRLF ' startwith "." in domain
elseif Text.isSubText(domain,".")="False" then
Invalid=Invalid+"Invalid : without .XXX in domain" +CRLF ' witout ".XXX" in domain
endif
'---------------------------------------------------------------------------------------------------------------------------
For i=1 To Pos_Atmark-1
If Text.IsSubText(ValidChars,text.GetSubText(email,i,1)) ="False" then ' other word in local
Invalid=Invalid+"Invalid : start without ValidChars in local" +CRLF
i=Pos_Atmark
endif
endfor
'---------------------------------------------------------------------------------------------------------------------------
For j=Pos_Atmark+1 To Length
if Text.IsSubText(ValidChars,text.GetSubText(email,j,1)) ="False" then 'other word in domai
Invalid=Invalid+"Invalid : start without ValidChars in domain" +CRLF
j=length
EndIf
endfor
'---------------------------------------------------------------------------------------------------------------------------
If text.StartsWith(Invalid,"Invalid")="False" Then
TextWindow.WriteLine("Your email address is valid")
TextWindow.WriteLine(" ")
Else
TextWindow.WriteLine(InValid+CRLF+"Email address should be made by these characters.... "+CRLF+ValidChars+CRLF )
TextWindow.WriteLine(" and with this style .... AAA@BBB.CCC ")
EndIf
endsub