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
  #21  
Antiguo 07-07-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
He estado observando todos los post, pero me parece que nos estamos liando.

Según lo que comenta incialmente Nomad

Cita:
Empezado por Nomad
Como hace uno para saber si lo que estoy leyendo de un dbstringgrid es un numero o una letra?
Esto sugiere (desde mi mente cochambrosa) que quiere saber el contenido de todo el DBStringGrid, no caracter por caracter, aunque puede ser que solo sea un caracter y no una cadena, o si, no se, seria cosa de que apareciera y nos diera mas información.

Creo que la respuesta debería ser mas simple.

Aqui les dejo el código, probado con las diferentes posibilidades.

Código Delphi [-]
{
Posibilidades.

1)  StringGrid1.Cells[1,1] := '-123456-754333';
2)  StringGrid1.Cells[1,1] := '-123456754333';
3)  StringGrid1.Cells[1,1] := '123456754333';
4)  StringGrid1.Cells[1,1] := 'A1B2C3d4C5';
}

  Try
    StrtoFloat(StringGrid1.Cells[1,1])
  except
    ShowMessage('No es número');
  end;

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #22  
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
No se si son manias o es que lo lei pero el asunto es que no me gusta crear excepciones que pueden ser evitadas.

jejej ademas si no nos hubieramos liado asi luego en que entretenernos
__________________
...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
  #23  
Antiguo 07-07-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por eduarcol
No se si son manias o es que lo lei pero el asunto es que no me gusta crear excepciones que pueden ser evitadas.

jejej ademas si no nos hubieramos liado asi luego en que entretenernos
, pues si es bonito hacer trabajar la mente torcida, sin embargo, hay que evaluar los costos de evitar una excepción.

En fin, cada perro tiene su método para matar pulgas.

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #24  
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
Hay diosssss, a veces me parece que debí dejar todo en el primer post que escribí (Que por cierto es muy parecido al codigo que acaba de escribir egostar). , pero otra veces me doy cuenta de que me he divertido con este hilo .
__________________
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
  #25  
Antiguo 07-07-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
He estado siguiendo a este hilo y la verdad es que como que le dieron demasiada rosca al asunto.

Cita:
Empezado por eduarcol
No se si son manias o es que lo lei pero el asunto es que no me gusta crear excepciones que pueden ser evitadas.
Es cierto, si se puede evitar el asunto de las excepciones. Conviene.

Ahora, para encabronar, y seguir dandole rosca... ¿alguno no pensó el emplear la antigua función val()?

Con esto simplemente podríamos hacer algo así (que también es rebuscado ya que por esas dos líneas directamente conviene meterle un IF) :

Código Delphi [-]
function EsNumero(Numero: string): boolean;
var
  Chequeo, Num: integer;
begin
   val(Numero, Num, Chequeo);
   result := (Chequeo = 0);
end;

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #26  
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
Delphius, Pues efectivamente dice que 13.5 es Alfanumérico
__________________
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
  #27  
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
Cita:
Empezado por egostar
He estado observando todos los post, pero me parece que nos estamos liando.
Cita:
Empezado por Delphius
He estado siguiendo a este hilo y la verdad es que como que le dieron demasiada rosca al asunto.

Sinceramente es pasion por ver sufrir al projimo :P


Ok val sirve para los enteros, ¿¿y los reales?? que son los que le dieron vuelta al asunto
__________________
...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
  #28  
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
Cita:
Empezado por eduarcol
Sinceramente es pasion por ver sufrir al projimo :P
Estoy de acuerdo contigo eduarcol, ¡¡¡ Que cosita ola!!!
__________________
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
  #29  
Antiguo 07-07-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por eduarcol
Ok val sirve para los enteros, ¿¿y los reales??
¿Estas completamente seguro?
Fui a la ayuda y me di con esto:

Cita:
Empezado por ayuda
Val converts the string value S to its numeric representation, as if it were read from a text file with Read.
S is a string-type expression; it must be a sequence of characters that form a signed real number.
V is an integer-type or real-type variable.
Para que funcione volví a la función y la alteré por esta:

Código Delphi [-]
function EsNumero(Numero: string): boolean;
var
  Chequeo: integer;
  Num: real;
begin
   val(Numero, Num, Chequeo);
   result := (Chequeo = 0);
end;

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #30  
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
Upps que de cosas, yo lei lo mismo pero no se en que estaba pensando y en vez de real lo modifique por double, bueno es sabado las 4 de la tarde y en lo noche me toca viajar debe ser eso que me tiene la cabeza en otra parte
__________________
...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
  #31  
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
Ya decia yo que alguien iba a venir he íbamos a tener que tirar todo a la basura , el único "problema" que veo es que parece que obliga a que se use como Separador decimal el Punto(.), de manera pues que si alguien esta acostumbrado a usar la coma (,) tendrá que cambiar de costumbres, ahh y volvió otro problema que ya habíamos evaluado, que el 999. (Con ese punto al final) no es valido .

Jejeje, parece que estuviéramos volviendo a lo mismo .
__________________
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
  #32  
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
Bueno, fue muy divertido este asunto y gracias a Delphius por fin se pudo sacar una función muy bonita, asi pues que propongo finalmente este otro ajustecito y listo ...

Código Delphi [-]
 
function EsNumero(Numero: string): boolean;
var
  Chequeo: integer;
  Num: real;
begin
   Numero := Trim(Numero);
   val(Numero, Num, Chequeo);
   result := ((Chequeo = 0) and (Numero[Length(Numero)]<> '.'));
end;
__________________
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
  #33  
Antiguo 07-07-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por jhonny
Ya decia yo que alguien iba a venir he íbamos a tener que tirar todo a la basura , el único "problema" que veo es que parece que obliga a que se use como Separador decimal el Punto(.), de manera pues que si alguien esta acostumbrado a usar la coma (,) tendrá que cambiar de costumbres, ahh y volvió otro problema que ya habíamos evaluado, que el 999. (Con ese punto al final) no es valido .

Jejeje, parece que estuviéramos volviendo a lo mismo .

, Si prueban con mi código, ya tiene contemplado los números que mencionas amigo jhonny.

Lo de las comas, , se resuelve con la funcion:

Código Delphi [-]
StringReplace(NombreCampo,',','',[rfReplaceAll]);



Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #34  
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
Cita:
Empezado por egostar
, Si prueban con mi código, ya tiene contemplado los números que mencionas amigo jhonny.

Lo de las comas, , se resuelve con la funcion:



StringReplace(NombreCampo,',','',[rfReplaceAll]);





Salud OS.
Jejeje, definitivamente esto si esta muy divertido, en ultimas todos tenemos algo de razón, tu dices que hay que cerciorarse de los costos vs access violations y tales y que pascuales y ya somos 4 invirtiéndole a esta solución , mientras que cierto personaje debe estar en casa con pantaloneta, tirado en su sillón viendo alguna buena pelicula de sábado con su familia .

Mi función en ese caso es:

Código Delphi [-]
 
StringReplace(DondeDeboEstar,'Oficina','Hogar',[rfReplaceAll]);

__________________
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
  #35  
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
Jajajajajajaja pues si definitivamente el amigo jhonny tiene una obsesion secreta con el 999. que realmente si es un numero, valdria decir

999 = 999. = 999.0

Pues yo ya llegue de la oficina a la casa pero no se preocupen aqui tengo tambien una oficina y hecha por mis propias manos vamos que hasta presentable me ha quedado, aunque sigo esperando que no se caiga, y el arquitecto y que si bases que si pilares que si cabilla, nah cemento y bloque jejeje
__________________
...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
  #36  
Antiguo 08-07-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Pues me he quedado un poco "picado", y se me ocurrió lo siguiente:

Código Delphi [-]
function Tform1.EsNumero(Numero: string; SepDecimal: char = '.'): boolean;
// Esta función ha sido diseñada para seguir dando rosca al asunto
// Espero que le sea de su agradado
const
  PUNTO = '.';
var
  Chequeo: integer;
  Num: real;
begin
   Numero := Trim(Numero);
   // Si usa otro separador... lo sustiuimos por el punto para
   // que se pueda transformar...
   // quien sabe, en una de esas puede existir algún planeta
   // en donde el separador sea el @
   if SepDecimal <> PUNTO
      then Numero := StringReplace(Numero,SepDecimal,PUNTO,[rfReplaceAll]);
   val(Numero, Num, Chequeo);
   result := ((Chequeo = 0) and (Numero[Length(Numero)]<> '.'));
end;

// Ejemplo de uso
procedure TForm1.Button1Click(Sender: TObject);
begin
  if EsNumero('999,75',',')
     then ShowMessage('Es un número')
     else ShowMessage('En este planeta eso no es un número');
end;

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #37  
Antiguo 08-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
Cita:
Empezado por Delphius
Pues me he quedado un poco "picado",
JEJEJE entonces ya estas entendiendo de que venia el hilo

muy buena tu funcion mañana la pruebo y veo que tal, por los momentos que pasaria con 999,999.99

o el dilema de jhonny de 99.
__________________
...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
  #38  
Antiguo 08-07-2007
Avatar de courtois
courtois courtois is offline
Miembro
 
Registrado: abr 2006
Ubicación: Mexico DF
Posts: 200
Poder: 19
courtois Va por buen camino
por que no pruebas con las funciones TryStrToInt o TryStrToFloat? ambas devuelven true si es posible convertir str en un numero entero o flotante
Responder Con Cita
  #39  
Antiguo 09-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
Cita:
Empezado por courtois
por que no pruebas con las funciones TryStrToInt o TryStrToFloat? ambas devuelven true si es posible convertir str en un numero entero o flotante
No les decia yo?

Parece que todo quedo reducido en esa función, incluso tiene en cuenta el 999.

Código Delphi [-]
 
var
  Numero :Extended;
begin
   if TryStrToFloat(Edit1.Text, Numero) then
     ShowMessage('Numero¡¡¡')
   else
     ShowMessage('AlfaNumero¡¡¡');
end;
Lo que me produce un "no se que" que no se describir, es que en http://www.clubdelphi.com/foros/show...1772#post71772 ya había algo . Que curioso...

¡¡¡Buena esa courtois!!!
__________________
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
  #40  
Antiguo 09-07-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Pues el compañero nomad ya tiene opciones para decidir, pero, a todo esto, donde estará que no ha dicho ni pio.

Bajo estas circunstancias me viene a la mente esto que escribió nuestro amigo jhonny....

Cita:
Empezado por jhonny
...definitivamente esto si esta muy divertido, en ultimas todos tenemos algo de razón, tu dices que hay que cerciorarse de los costos vs access violations y tales y que pascuales y ya somos 4 invirtiéndole a esta solución , mientras que cierto personaje debe estar en casa con pantaloneta, tirado en su sillón viendo alguna buena pelicula de sábado con su familia .


Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
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 20:02:44.


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