'Primer 12: e-mail adresa (funkcije za rad sa niskama). Linearna (sekvencijalna) pretraga niza
'Korisnik se prijavljuje za e-mail adresu. Domeni koji su mu na raspolaganju su:
'yahoo.com, hotmail.com, gmail.com. Korisnik treba da unese zeljenu adresu, posle cega
'procedura proverava da li je nadimak duzine izmedju 4 i 8 karaktera, da li je
'sastavljen iskljucivo od malih slova i da li je domen jedan od onih dozvoljenih
Sub eadresa()
Dim adresa As String, nadimak As String, domen As String
Dim domeni(3) As String
Dim majmunce As Integer 'pozicija znaka '@' u adresi
Dim sPoruka As String
domeni(1) = "yahoo.com"
domeni(2) = "hotmail.com"
domeni(3) = "gmail.com"
'Ulaz
sPoruka = "Nadimak mora biti duzine izmedju 4 i 8 karaktera." & vbNewLine
sPoruka = sPoruka & "Nadimak ne sme da sadrzi velika slova." & vbNewLine
sPoruka = sPoruka & "Domen mora biti jedan od:" & vbNewLine
sPoruka = sPoruka & vbTab & "yahoo.com" & vbNewLine
sPoruka = sPoruka & vbTab & "hotmail.com" & vbNewLine
sPoruka = sPoruka & vbTab & "gmail.com" & vbNewLine
adresa = InputBox(sPoruka, "Unesite zeljenu adresu")
'Obrada i izlaz
majmunce = InStr(adresa, "@")
If majmunce = 0 Then
MsgBox "Nepravilna adresa (@ je obavezan)"
Else
nadimak = Left(adresa, majmunce - 1)
domen = Right(adresa, Len(adresa) - majmunce)
If LCase(nadimak) <> nadimak Then
MsgBox "Nadimak " & nadimak & " nije sastavljen samo od malih slova"
ElseIf Len(nadimak) < 4 Or Len(nadimak) > 8 Then
MsgBox "Nadimak " & nadimak & " nije duzine izmedju 4 i 8 karaktera (ukljucujuci i 4 i 8)"
ElseIf Not linearnaPretraga(domeni, 3, domen) Then
MsgBox "Domen " & domen & " nije jedan od dozvoljenih"
Else
MsgBox "Adresa je OK, prihvata se"
End If
End If
End Sub
'vrednost funkcije je True ili False u zavisnosti od toga da li niz od n elemenata
'sadrzi vrednost x kao svoj element. Pretraga se vrsi neposrednim uporedjivanjem
'svakog elementa niza sa vrednoscu koja se trazi
Function linearnaPretraga(niz() As String, n As Integer, x As String) As Boolean
Dim nadjen As Boolean
Dim i As Integer
nadjen = False
i = 1
While (Not nadjen) And (i <= n)
If niz(i) = x Then
nadjen = True
End If
i = i + 1
Wend
linearnaPretraga = nadjen
End Function