Fórum Letra ou numero no edit #222978
29/03/2004
0
Tenho a seguinte duvida: como identifico se o conteudo de um edit é letra ou numero, pois dependendo de qual seja, farei uma busca diferente.
Agradeço antecipadamente.
Flaviosan
Curtir tópico
+ 0Posts
29/03/2004
Paulo_amorim
try StrToInt(Edit1.Text); ShowMessage(´é numero´); except ShowMessage(´é letra´); end;
Até+
Gostei + 0
29/03/2004
Marco Salles
Voce Quer Dizer Letra Ou Palavra :?: A Função Abaixo é Mais Geral, Tenta Identificar Palavra Ou Numero, Serve Também Para Letra....
function VerificarConteudoDoEdit(Texto:String):Boolean; VAR i:integer; begin result:=False; i:=1; While i<= Length(Texto) do begin if not (Texto[i] in [´0´..´9´]) Then begin result:=True; Break; end; i:=i+1; end; end; procedure TForm1.Button1Click(Sender: TObject); begin if VerificarConteudoDoEdit(Edit1.Text) Then ShowMessage(´Palavra´) else ShowMessage(´Numero´); end;
Gostei + 0
29/03/2004
Flaviosan
Eu queria saber mais uma coisa: se o texto inserido for numero, como saber o comprimento desse texto? (ex.: 548627 tem o comprimento igual a 6)
Agradeço antecipadamente
Gostei + 0
29/03/2004
Marco Salles
Gostei + 0
29/03/2004
Marco Salles
O Texto Inserido, Não é Um Número :!: Voce Pode Dependendo Transformar o Conteudo Do Texto Em Un Múmero, Aí Já é Outra História...
Mas De Qualquer Forma o Comprimento Do Texto Pode Ser Determinado Pela Função: Length(Texto);
ShowMessage(IntToStr(Length(Texto));
Gostei + 0
29/03/2004
Flaviosan
Obrigado Paulo e Marcos por suas respostas certeiras.
Gostei + 0
29/03/2004
Paulo_amorim
Olá
Qual o probleam com o uso de exceçoes? Por que nao gosta?
Eu nao me preocupi pois o Delphi pode lidar com elas sem problemas (tanto eh que pode-se inclusive ´criar´ uma exceçao).
Exceção nao eh igual a Defeito, mas sim uma coisa nao esperada (como passar uma String alfanumerica para integer).
Nao quero ser ´teimoso´ e nao aceitar tua sugestao, mas apenas entende-la...se me convencer, certamenta passarei a evitar tambem!
Outra coisa, embora fazer um while varrendo o Edit.Text seja bom e ´limpo´, toma mais tempo de processamento.
Ate+
Gostei + 0
29/03/2004
Marco Salles
Eu Não Sou Formador De Opiniões, Apenas Passador De Opiniões
Voce Tem Certeza Disto :?: Será Que o Tempo Gasto Pelo Delphi Para
Provocar Uma Exceçõa e Manipula-la é Relmente Menor :?:
Gostei + 0
29/03/2004
Paulo_amorim
Nunca soube disso, por isso sempre usei.
Não quero dizer que eh formador de opiniões, mas estamos aqui para aprender. Se o que me disse de fato eh real, eh uma cois que aprendi e fico grato! hei de pensar niso em algoritmos futuros... :idea:
Quem sabe...talvez nao seja, mas eu prefiro nao usar...vai ver eu dise isso porque eu odeio While :lol:
Até+
Gostei + 0
29/03/2004
Marco Salles
No Final o flaviosan Gentilmente Se Converte, Onde Ele Declara a Importância De Sua Opinião: :P :P :P
Sem Mais Um Abraço Amigo....
Gostei + 0
29/03/2004
Paulo_amorim
talvez nao tenha me feito entender...eu nao peguei mal nem nada!!!
De fato, estou grato a voce por ter explicado um bom motivo para nao usar exceçoes!
Sobre o Flavio ter ou nao usado a minha ideia, isso eh questao dele!
Nao fiquei bravo nem nada :D
Acho que quanto mais postagens houver, melhor para o fórum e seus usuarios! Assim, nossa discussao terminou bem
Um abraço!
Até+
Gostei + 0
29/03/2004
Flaviosan
Quando enviei minha segunda mensagem(perguntando sobre o comprimento do numero) eu havia deixado a tela do post parada por uns 15 min. Quando respondi a mensagem, eu rolei a tela para me certificar do nome de quem havia me respondido, e o nome que eu vi foi o do marcos, pois ele tinha enviado uma resposta tambem nesse tempo e o sistema do forum coloca as novas mensagens no topo(logo abaixo e onde a gente escreve a mensagem). resumindo eu respondi a mensagem certa para o colega errado. o exemplo do paulo encaixou como uma luva e eu tentei conseguir uma complementação e acabou dando nisso. so que eu penso como o marcos, se voce pode evitar que uma excessao ocorra, faça isso.
Me desculpem mais uma vez e muito obrigado pelas suas resposta matadoras.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)