[Ajuda] IsValidTag
#1

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?
Reply
#2

Esses caracteres mantem uma PA na tabela ASCII ?
Reply
#3

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

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

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;
}
Reply
#6

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.
Reply
#7

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.
Reply
#8

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;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)