'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