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 06-07-2007
Avatar de Nomad
Nomad Nomad is offline
Miembro
 
Registrado: abr 2007
Ubicación: Sarchi,Costa Rica
Posts: 107
Poder: 18
Nomad Va por buen camino
Saber si es un numero

Como hace uno para saber si lo que estoy leyendo de un dbstringgrid es un numero o una letra?

Gracias
__________________
Quisiera cambiar el mundo, pero no me dan el código fuente.
Responder Con Cita
  #2  
Antiguo 06-07-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
La verdad es que no conozco el TDBStringGrid, pero Con un TEdit se puede hacer asi:
Código Delphi [-]
 
var
  N :Integer;
begin
  N := StrToIntDef(Edit1.Text, -1);
  if N = -1 then
    ShowMessage('Letra')
  else
    ShowMessage('Numero');
end;
Si adecuas este ejemplo a lo que necesitas seguramente te sera útil.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #3  
Antiguo 06-07-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
No tengo delphi a mano ahorita pero tambien esta la funcion IsNumeric que devuelve true si es un numero

Código Delphi [-]
if IsNumeric(StringGrid1.Cells[x,y]) then
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #4  
Antiguo 06-07-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
No se si me equivoco, pero tengo entendido que IsNumeric solo recibe como parámetro un Char, de manera que solo servirá para comprobar los números del 0 al 9.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #5  
Antiguo 07-07-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Por eso decia que no tenia delphi a mano de hecho lo escribi de memoria, es mas despues que postee me puse a pensar si no sera de otro lenguaje
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #6  
Antiguo 07-07-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Pero siempre podremos hacer nuestra función personalizada .
Código Delphi [-]
 
function TForm1.EsNumero(Numero: String): Boolean;
var
  i :Integer;
begin
  i := 0;
  Result := True;
  while ((i <= Length(Numero)-1) and (Result = True)) do
  begin
    inc(i);
    Result := IsNumeric(Numero[i]);
  end;
end;
Para usarla es:
Código Delphi [-]
 if EsNumero(StringGrid1.Cells[x,y]) then
  begin
    ShowMessage('Es Numerico¡');
  end
  else
  begin
    ShowMessage('Es Alfanumerico¡');
  end;

Nota: IsNumeric pertenece a la unidad IdGlobal.Pas
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #7  
Antiguo 07-07-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Un pequeño ajuste a esa función ya que si le envían '' me diría que es Numérico y si envían un numero negativo diría que es alfanumerico:
Código Delphi [-]
 
function TForm1.EsNumero(Numero: String): Boolean;
var
  i :Integer;
begin
  i := 0;
  Result := (Length(Numero)<>0);
  while ((i <= Length(Numero)-1) and (Result = True)) do
  begin
    inc(i);
    Result := (IsNumeric(Numero[i]) or (Numero[i]='-'));
  end;
end;

Seguro que esa función debe tener errores aun, pues no tiene en cuenta los flotantes o si le envian algo como -1222-566 tambien presentaria problemas, pero alli se las dejo por si alguien quiere refinarla.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/

Última edición por jhonny fecha: 07-07-2007 a las 00:34:56.
Responder Con Cita
  #8  
Antiguo 07-07-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Buena esa jhonny

yo añadiria

Código Delphi [-]
function TForm1.EsNumero(Numero: String): Boolean;
var
  i :Integer;
begin
  i := 0;
  Result := (Length(Numero)<>0);
  while ((i <= Length(Numero)-1) and (Result = True)) do
  begin
    inc(i);
    Result := (IsNumeric(Numero[i]) or (Numero[i]='-') or (Numero[i]=DecimalSeparator) );
  end;
end;
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Saber si un texto es un número elcigarra OOP 29 30-09-2006 00:25:56
Saber el número de serie de la placa fer21unmsm Varios 3 30-12-2005 18:36:51
como saber el numero de renglones ddd_ddd OOP 4 27-10-2005 21:27:56
Saber el numero de caracteres de un memo judoboy Varios 1 20-06-2003 14:27:19
Saber el numero de registros consultados estudiante SQL 2 13-05-2003 00:12:09


La franja horaria es GMT +2. Ahora son las 21:22:11.


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