Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2013-09-14, 21:48


vipSEBOvip

A poor begginer






Wiek: 26
Na forum: 5178 dni
Posty: 597
Nick w MP: xSebaPL

Piwa: 77

Respekt: 140
Respekt: 140

Witam, jak sprawdzi? czy w loginie i ha?le s? same litery i cyfry:
function zarejestruj()
    local login guiGetText(g_e_login)
    local password guiGetText(g_e_password)
    
    if (#login < 5) then
        guiSetText(g_l_info"Tw?j login mo?e mie? min. 5 znak?w.")
        guiLabelSetColor(g_l_info25500)
        return
    end
    
    if (#login > 20) then
        guiSetText(g_l_info"Tw?j login mo?e mie? max. 20 znak?w.")
        guiLabelSetColor(g_l_info25500)
        return
    end
    
    if (#password < 6) then
        guiSetText(g_l_info"Twoje has?o mo?e mie? min. 6 znak?w.")
        guiLabelSetColor(g_l_info25500)
        return
    end
    
    if (#password > 15) then
        guiSetText(g_l_info"Twoje has?o mo?e mie? max. 15 znak?w.")
        guiLabelSetColor(g_l_info25500)
        return
    end
    triggerServerEvent("onZarejestruj"localPlayerloginpasswordd)
end


Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-09-15, 00:34


Piorun







Wiek: 32
Na forum: 6712 dni
Posty: 1837
Nick w MP: Piorun

Piwa: 516

Respekt: 480,7
Respekt: 480,7

Spr?buj tak:

string.find(TUTAJ_WKLEJASZ_ZMIENN?_TYPU_CHAR"%d") -- sprawdza czy char jest cyfr?
string.find(TUTAJ_WKLEJASZ_ZMIENN?_TYPU_CHAR"%a") -- sprawdza czy char jest liter?


Jest jeszcze jedna metoda lecz tutaj troch? trzeba zna? si? na ascii.
Jak to powinno dzia?a?? Musisz ka?dego stringa rozbi? na chary (inaczej - s?owo na litery). By to zrobi? musimy utworzy? p?tle, kt?ra b?dzie nam sobie tam sprawdza?a ka?dego kolejnego chara:

for 1,string.len(ZMIENNA_STRING) do
string.sub(ZMIENNA_STRING,i,i) -- z tego otrzymamy naszliterk?


Wystarczy u?y? teraz w/w funkcji i gotowe :)
Masz tu gotowca :D .

function isStringWithNumberAndLetter(sString)
    local bool true
    for 1,string.len(sString) do
        local sChar string.sub(sString,i,i) 
        if string.find(sChar"%a") == nil then
            if string.find(sChar"%d") == nil then
                bool false
                break
            end
        end
    end
    return bool
end


Wklej to gdzie? najlepiej na pocz?tku kodu i w ?rodku u?yj:
isStringWithNumberAndLetter(JAKIS_STRING)


Jak np. za JAKIS_STRING podstawisz s?owo "Piorun" zwr?ci ona "true", jak np. "Piorun93" - zwr?ci true. Lecz jak dodasz znak specjalny np. "@" funkcja zwr?ci false. Mi?ego programowania :)

UWAGA!!!!!!!

Powy?szy kod nie dzia?a z polskimi znakami. Zawsze mo?esz zabroni? komu? u?ywania ich do loginu lub has?a :D .

Podpis
Możesz mnie znaleźć na: Facebook
Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-09-15, 09:24


vipSEBOvip

A poor begginer






Wiek: 26
Na forum: 5178 dni
Posty: 597
Nick w MP: xSebaPL

Piwa: 77

Respekt: 140
Respekt: 140

Okej, przerobie ten kod tak, by bym mia? wszystko w kodzie na swoim miejscu ;D

A jeszcze jedno, czy to
break
jest obowi?zkowe ? Do czego s?u?y ?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-09-15, 10:10


Brzysiek

Skrypter pralek






Wiek: 27
Na forum: 5198 dni
Posty: 488
Nick w MP: Brzysiek

Piwa: 1034

Respekt: 360
Respekt: 360Respekt: 360Respekt: 360Respekt: 360

Break oznacza przerwanie p?tli, Piorun u?y? tego polecenia by skrypt nie powtarza? p?tli kolejny raz.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-09-15, 13:42


vipSEBOvip

A poor begginer






Wiek: 26
Na forum: 5178 dni
Posty: 597
Nick w MP: xSebaPL

Piwa: 77

Respekt: 140
Respekt: 140

Przerobi?em twojego gotowca troch? i tak to teraz wygl?da:
Error:
unexpected symbol near 'break'

spamLogin getTickCount()-1000
function zaloguj()
    if (getTickCount()-spamLogin<1000then return end
    spamLogin getTickCount()
    local login guiGetText(g_e_login)
    local password guiGetText(g_e_password)
    if (#login < 1 and #password < 1) then
        guiSetText(g_l_info"Podaj login i has?o.")
        guiLabelSetColor(g_l_info25500)
        return
    end
    
    for 1string.len(login) do
        local loginChar string.sub(login,i,i) 
        if (string.find(loginChar"%a") == nilthen
            if (string.find(loginChar"%d") == nilthen
                return
                break
            end
        end
    end
    
    for 1string.len(password) do
        local passwordChar string.sub(passwordii)
        if (string.find(passwordChar"%a") == nilthen
            if (string.find(passwordChar"%d") == nilthen
                return
                break
            end
        end
    end
    
    triggerServerEvent("onZaloguj"localPlayerloginpassword)
end


Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-09-15, 17:04


Brzysiek

Skrypter pralek






Wiek: 27
Na forum: 5198 dni
Posty: 488
Nick w MP: Brzysiek

Piwa: 1034

Respekt: 360
Respekt: 360Respekt: 360Respekt: 360Respekt: 360

Wywal returny z p?tli.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-09-16, 12:10


Piorun







Wiek: 32
Na forum: 6712 dni
Posty: 1837
Nick w MP: Piorun

Piwa: 516

Respekt: 480,7
Respekt: 480,7

Ja jeszcze wr?c? do 'break'. S?owo to u?ywamy jak chcemy przerwa? p?tle gdy np. nie potrzebujemy przeszukiwa? lub znale?li?my lub otrzymali?my to czego si? spodziewamy. Na przyk?ad 'break' mo?emy u?y? gdy chcemy znale?? pusty element tabeli (zak?adaj?c, ?e jest on inny ni? ostatni). Mo?na pos?u?y? si? inn? p?tl?, a mianowicie 'while' lecz jest ona .. ciut dziwna i raczej w wi?kszo?ci korzysta si? z 'for' (i nie tylko w Lua :) ).

Return u?ywa si? w momencie gdy tworzysz funkcj? (np. tworz?c? jaki? obiekt oraz przypisuj?c? mu dan?). Return mo?na u?y? lecz nie trzeba. Kiedy wi?c u?ywa?? Gdy jest taka potrzeba. Je?eli szacujemy, ?e dana funkcja POWINNA zwr?ci? nam jak?? warto?? (np. tworzymy funkcj?, kt?ra liczy nam miejsca zerowe funkcji kwadratowej) wtedy u?ywamy return. Przy czym po tym s??wku dajemy konkretn? warto?? jak? chcemy, by funkcja nam zwr?ci?a.

Powodzenia :)

Podpis
Możesz mnie znaleźć na: Facebook
Postaw piwo autorowi tego posta
 

 
Tagi: sprawdzenie :: ciągu :: znaków
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » Sprawdzenie ciągu znaków Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku