Checar se a apenas números na string

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Checar se a apenas números na string

Mensagem por Thiago_o_programador em Sab 13 Abr 2013, 17:33

A questão é simples porém está me dando uma enorme dor de cabeça.
Eu tenho X string escrita pelo usuário, o que eu preciso, é saber se está contém apenas números, letras ou uma mistura, os três casos serão tratados de maneira diferente.
Por exemplo:
Eu tenho uma caixa de dialogo que diz: "Digite a posição absoluta: ", no caso, se ele digitar apenas números, será acionada a função real(). Se não, acontecerá outras ações.

Obrigado desde já!

Thiago_o_programador

Ranking : Nota D
Número de Mensagens : 709
Idade : 19
Data de inscrição : 14/05/2009
Notas recebidas : D - C - D - C
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://www.jogosdahora.maisblog.net

Voltar ao Topo Ir em baixo

Re: Checar se a apenas números na string

Mensagem por Isaque Onix em Sab 13 Abr 2013, 17:44

Código:
is_real(x)
Retorna 1(true) se o valor de (x) for real
Código:
is_string(x)
Retorna 1(true) se o valor de (x) for string
[edit]
exemplo ( STEP )
Código:
if(keyboard_check(vk_space)){
Test=choose('teste',100)
if(is_real(Test)){show_message(string(Test)+' é real')}
else
{show_message(string(Test)+' é string')}
}

Isaque Onix

Número de Mensagens : 1597
Idade : 23
Data de inscrição : 15/08/2010
Reputação : 147
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://spyreserver.16mb.com

Voltar ao Topo Ir em baixo

Re: Checar se a apenas números na string

Mensagem por PedroX em Sab 13 Abr 2013, 18:22

Código:
str='abcde12345';
n=string_digits(str); // '12345'
s=string_letters(str); // 'abcde'

if (s!='')
{
if (n!='')
{
//letras e números
}
else
{
//letras
}
}
else
{
if (n!='')
//numeros
}

Acho que dá pra otimizar um pouco:

Código:
str='abcde12345';
n=string_digits(str); // '12345'
s=string_letters(str); // 'abcde'

a = (n!='')*1 + (s!='')*2;

switch(a)
{
case 0: //nem letras nem numeros
break;

case 1: //so numeros
break;

case 2: //so letras
break;

case 3: //ambos
break;
}

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Checar se a apenas números na string

Mensagem por Thiago_o_programador em Dom 14 Abr 2013, 13:19

Valeu PedroX, com o teu código (o primeiro) foi só colocar um variable_local_get() que deu certo nos dois primeiros casas e quanto aos números foi apenas real();

Obrigado também Isaque!

Thiago_o_programador

Ranking : Nota D
Número de Mensagens : 709
Idade : 19
Data de inscrição : 14/05/2009
Notas recebidas : D - C - D - C
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://www.jogosdahora.maisblog.net

Voltar ao Topo Ir em baixo

Re: Checar se a apenas números na string

Mensagem por PedroX em Dom 14 Abr 2013, 16:58

Na verdade os dois fazem a mesma coisa, mas o segundo é mais limpo e rápido. Recomendo usar o segundo, você pode até remover os cases que não quiser.

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Checar se a apenas números na string

Mensagem por Conteúdo patrocinado Hoje à(s) 20:21


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum