Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-06-2004
ctronx ctronx is offline
Miembro
 
Registrado: jun 2004
Posts: 214
Poder: 20
ctronx Va por buen camino
Verificar si el valor introducido en un edit1.text es un numero o una cadena

el titulo es muy descriptivo, lo unico que deseo es poder saber si el valor introducido en un edit es un numero o una cadena y en base a ello realizar cierta acción, ¿hay alguna funcion como isnumeric(); isstring(); ó algo parecido que me ayude a saber si es un texto o o numero.

Gracias por la ayuda que puedan darme.
Responder Con Cita
  #2  
Antiguo 24-06-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Fíjate en el procedimiento Val:

Código Delphi [-]
procedure Val(S; var V; var Code: Integer);

S es la cadena que quieres probar, por ejemplo Edit1.Text. Val intenta convertir S en un número y lo coloca en V. Si S no representa un número entonces Code será distinto de cero e indicará el prmer carcater de S que no es número.

// Saludos
Responder Con Cita
  #3  
Antiguo 24-06-2004
ctronx ctronx is offline
Miembro
 
Registrado: jun 2004
Posts: 214
Poder: 20
ctronx Va por buen camino
Unhappy

disculpa mi ignorancia, pero no me queda muy claro. Este procedimiento ya existe en delphi como funcion o algo asi?, yo lo genero?, val que codigo tiene ò como es que intenta convertir S en numero, en fin creo que no lo supe interpretar bien.


gracias
Responder Con Cita
  #4  
Antiguo 24-06-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por ctronx
Este procedimiento ya existe en delphi como funcion o algo asi?
Sí, disculpa, en efecto no quedaba claro. La función Val es una función incluida en Delphi y sólo te explicaba como se usa.

Se podría implementar una función isnumber usando Val, por ejemplo:

Código Delphi [-]
function IsNumber(S: String): Boolean;
var
  Number, Code: Integer;

begin
  Val(S, Number, Code);
  Result := (Code = 0);
end;

// Saludos
Responder Con Cita
  #5  
Antiguo 24-06-2004
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
En delphi 6 tienes la funcion trystrtoint(cadena:string; valor:integer):Boolean

Código Delphi [-]
  var i:integer;
begin
  if TrystrToInt('123', i) then
     // si es un numero y el valor lo tienes en I
  else 
    // no es un número, en 'i' no sabe dios lo que habrá.

Este otro metodo lo propongo yo para validar cadenas. Lo que hace es eliminar los caracteres que no pertenece al ConjuntoValido
Código Delphi [-]
type TcharSet = set of Char;

function VAlidaCadena(const s : string; ConjuntoValido : TcharSet):string;
var i:integer;
begin
  Result := '';
  if length(s) >= 1 then
  for i:= 0 to length(s) do
    if s[i] in ConjuntoValido then
      Result := REsult +s[i];
end;

//forma de llamarlo:
procedure Mio()
const ChrValidos :Tcharset = ['0'..'9',',']; //solo permito valores numéricos y la coma decimal 
var s:string;
begin
  s:= '21334,00';
  cbotarifas.Text := validacadena(s,chrValidos);

Si validas caracteres sería algo así como chrvalidos:=['a'..'z','A'..'Z','ñ','Ñ']

Saludos y espero te sirva.
Responder Con Cita
  #6  
Antiguo 24-06-2004
ctronx ctronx is offline
Miembro
 
Registrado: jun 2004
Posts: 214
Poder: 20
ctronx Va por buen camino
Gracias a ambos, probe lo de la Val ocupandola en la función que pusiste de ejemplo isnumber y funciono sin problemas, ya entendi bien como funciona y adapte a mis necesidades.
Responder Con Cita
  #7  
Antiguo 26-06-2004
Avatar de Paoti
Paoti Paoti is offline
Miembro
 
Registrado: may 2003
Ubicación: Monterrey. N.L., México
Posts: 612
Poder: 21
Paoti Va por buen camino
Hola ctronx!!!!



si tienes Delphi 6 o Delphi 7, ya hay varius funciones que te ayuidan a convertir uun cierto valor a otro, y si no puede hacer la conversion, no dispara un error, simplementye te devuelve un valor la funcion....


una de ellas es la que nos puso nuestro camarada Lepe....

trytostrtoint...

y hay mas....!



y muchas mirate la ayuda de delphi..... (ahi esta la pista... y tienes todo un manjar de funciones......) parte buscate en la red creo que se llaman las JExperts, me parece, son varias unidades con funciones...



que esten bien
__________________
Estudia y anda en la calle.... que asi serás el doble de listo que los demás...

análisis de información
análisis y diseño de sistemas

Paoti Rios Reséndiz
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 17:56:59.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi