'Email Format Validity checker created by Leonardo "Kroltan Bahuman" Giovanni Scur
'for the Small Basic Challenge of the Month in May 2013
'--------------- SUBROUTINES
'Check uses the email variable to verfy validty
Sub CheckMail
If (Text.IsSubText(email, "@")) Then 'check if can be divided
mailDomain = Text.GetSubTextToEnd(email, Text.GetIndexOf(email, "@")+1) 'get user part of email
If (Text.GetLength(mailDomain) > 0 And Text.IsSubText(mailDomain, ".") And mailDomain <> ".") Then
param1MakeArray = mailDomain
MakeArray()
param1InMask = emailMask
param2InMask = resultMakeArray
InMask()
If (resultInMask = 1) Then
mailUser = Text.GetSubText(email, 1, Text.GetIndexOf(email, "@")-1)
If (Text.GetLength(mailUser) > 0) Then
param1MakeArray = mailUser
MakeArray()
param1InMask = emailMask
param2InMask = resultMakeArray
InMask()
If (resultInMask = 1) Then
status = "This email aderess is valid"
Else
status = "Invalid email: unexpected symbol"
EndIf
Else
status = "Invalid email: no user specified"
EndIf
Else
status = "Invalid email: unexpected symbol"
EndIf
Else
status = "Invalid email: bad domain"
EndIf
Else
status = "Invalid email: not email format"
EndIf
EndSub
'MakeArray takes 1 input text and convert to a array of single characters
param1MakeArray = ""
Sub MakeArray
resultMakeArray = ""
For i = 0 To Text.GetLength(param1MakeArray)
resultMakeArray[i] = Text.GetSubText(param1MakeArray, i, 1)
EndFor
EndSub
'InMask takes 2 text array inputs (mask and content) and returns 1 if all the text is in the mask, else 0
'you can get text arrays using MakeArray
param1InMask = ""
param2InMask = ""
Sub InMask
resultInMask = 1
For i = 1 To Array.GetItemCount(param2InMask)
If (Array.ContainsValue(param1InMask, param2InMask[i]) = "False") Then
resultInMask = 0
EndIf
EndFor
EndSub