SA-MP Forums Archive
[Ajuda] IsValidTag - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] IsValidTag (/showthread.php?tid=382062)



IsValidTag - DrTHE - 01.10.2012

Estou com um problema em uma funзгo:

eu uso ela em um dialog e ela estб retornando a 0 mesmo se o caracter for permitido.

Como eu uso:
pawn Код:
if(!IsValidTag(inputtext)) ...
Funзгo:
pawn Код:
stock IsValidTag(str[])
{
    new i, cur;
    if(7 > strlen(str) > 0)
    {
        while(i < 6)
        {
            cur = str[i++];
            if((cur < 'A') || (cur > 'Z') || (cur < '0')
            || (cur > '9') || (cur == '~') || (cur == '+') || (cur == '-')
            || (cur == '=') || (cur == '*') || (cur == '/') || (cur == '\\')
            || (cur == '!') || (cur == ''') || (cur == '#') || (cur == '%')
            || (cur == '&') || (cur == 'Ё') || (cur == '(') || (cur == ')')
            || (cur == '_') || (cur == '§') || (cur == '¬') || (cur == 'ў')
            || (cur == 'І') || (cur == '№') || (cur == '?') || (cur == '|')
            || (cur == '°') || (cur == '"') || (cur == ';') || (cur == ':')
            || (cur == '^') || (cur == '[') || (cur == ']') || (cur == '`')
            || (cur == '{') || (cur == '}') || (cur == 'Ј') || (cur == 'і')
            || (cur == 'Є') || (cur == 'є') || (cur == '¶') || (cur == '•')
            || (cur == '™') || (cur == '¤')) return 0;
        }
    }
    else
    {
        return 0;
    }
    return 1;
}
Alguйm sabe o que pode ser?


Re: IsValidTag - ViniBorn - 01.10.2012

Esses caracteres mantem uma PA na tabela ASCII ?


Re: IsValidTag - zSuYaNw - 01.10.2012

usa strcmp, okflw.
ou transforme a string para tabela ASCII.


Re: IsValidTag - DrTHE - 01.10.2012

Quote:
Originally Posted by Viniborn
Посмотреть сообщение
Esses caracteres mantem uma PA na tabela ASCII ?
Nгo entendi vini, o que seria 'PA'?


Re: IsValidTag - zSuYaNw - 01.10.2012

isso:
pawn Код:
IsValidTag(str[]){

    for(new i, size = strlen(str); i != size; ++i){
        if((str[i] < 'A') || (str[i] > 'Z') || (str[i] < '0')
            || (str[i] > '9') || (str[i] == '~') || (str[i] == '+') || (str[i] == '-')
            || (str[i] == '=') || (str[i] == '*') || (str[i] == '/') || (str[i] == '\\')
            || (str[i] == '!') || (str[i] == ''') || (str[i] == '#') || (str[i] == '%')
            || (str[i] == '&') || (str[i] == 'Ё') || (str[i] == '(') || (str[i] == ')')
            || (str[i] == '_') || (str[i] == '§') || (str[i] == '¬') || (str[i] == 'ў')
            || (str[i] == 'І') || (str[i] == '№') || (str[i] == '?') || (str[i] == '|')
            || (str[i] == '°') || (str[i] == '"') || (str[i] == ';') || (str[i] == ':')
            || (str[i] == '^') || (str[i] == '[') || (str[i] == ']') || (str[i] == '`')
            || (str[i] == '{') || (str[i] == '}') || (str[i] == 'Ј') || (str[i] == 'і')
            || (str[i] == 'Є') || (str[i] == 'є') || (str[i] == '¶') || (str[i] == '•')
            || (str[i] == '™') || (str[i] == '¤')) return 0;     
    }
    return 1;
}



Re: IsValidTag - ViniBorn - 01.10.2012

Quote:
Originally Posted by THE_FALLEN
Посмотреть сообщение
Nгo entendi vini, o que seria 'PA'?
Progressгo aritmйtica. Se for, dб pra vocк trabalhar com os valores, em vez dos caracteres, que vai deixar o cуdigo menor.


Re: IsValidTag - DrTHE - 01.10.2012

Quote:
Originally Posted by [Full]Garfield[XDB]
Посмотреть сообщение
isso:
pawn Код:
IsValidTag(str[]){

    for(new i, size = strlen(str); i != size; ++i){
        if((str[i] < 'A') || (str[i] > 'Z') || (str[i] < '0')
            || (str[i] > '9') || (str[i] == '~') || (str[i] == '+') || (str[i] == '-')
            || (str[i] == '=') || (str[i] == '*') || (str[i] == '/') || (str[i] == '\\')
            || (str[i] == '!') || (str[i] == ''') || (str[i] == '#') || (str[i] == '%')
            || (str[i] == '&') || (str[i] == 'Ё') || (str[i] == '(') || (str[i] == ')')
            || (str[i] == '_') || (str[i] == '§') || (str[i] == '¬') || (str[i] == 'ў')
            || (str[i] == 'І') || (str[i] == '№') || (str[i] == '?') || (str[i] == '|')
            || (str[i] == '°') || (str[i] == '"') || (str[i] == ';') || (str[i] == ':')
            || (str[i] == '^') || (str[i] == '[') || (str[i] == ']') || (str[i] == '`')
            || (str[i] == '{') || (str[i] == '}') || (str[i] == 'Ј') || (str[i] == 'і')
            || (str[i] == 'Є') || (str[i] == 'є') || (str[i] == '¶') || (str[i] == '•')
            || (str[i] == '™') || (str[i] == '¤')) return 0;       
    }
    return 1;
}
Eu tentei aqui, mas ainda retorna a 0.
Obrigado mesmo assim

Quote:
Originally Posted by Viniborn
Посмотреть сообщение
Progressгo aritmйtica. Se for, dб pra vocк trabalhar com os valores, em vez dos caracteres, que vai deixar o cуdigo menor.
Irei fazer isso.
Vai me dar um pouco de trabalho rsrs.
Obrigado.


Re: IsValidTag - zSuYaNw - 01.10.2012

Agora sim, testado:

pawn Код:
IsValidTag(str[]){

    for(new i, size = strlen(str); i != size; ++i){
        if(!(str[i] >= 0x61  || 0x7A <= str[i])){ // if is valid character
            return false;
        }
    }
    return true;
}