Ver Mensaje Individual
  #36  
Antiguo 08-07-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Reputación: 27
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