Delphi - isnumeric en delphi

 
Vista:

isnumeric en delphi

Publicado por manutenfruits (1 intervención) el 16/09/2006 04:55:52
hola, estoy empezando con delphi, aprovechando mis anteriores conocimientos de pascal, pero me ha surgido un problema:

necesito una funcion parecida a la IsNumeric, presente en VB.

he encontrado una "casera" en otra pagina web:

[code]
function IsNUmeric(const s: string): boolean;
var
i: integer;
begin
Result := True;
for i:=1 to length(s) do
if not s[i] in ['0'..'9'] then //<---esto da error en el compilador
begin
Result := False;
Break; //Exit ?
end;
end;
[/code]

necesito una expresion que solvente ese problema, otra linea de codigo alternativa...
se me ha ocurrido algo como

[code]if s[i] <> '1','2','3','4','5','6','7','8','9','0',',' then[/code]

quisiera saber tambien que expresion debería usar para que compilase bien, pues esa cantidad de numeros esta mal puesta, no se ponerla bien (y que incluya la coma de decimal!!)

bueno, esto es todo, espero su respuesta

salu2!!
manutenfruits
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:isnumeric en delphi

Publicado por BigLuis (713 intervenciones) el 16/09/2006 17:48:52
Echale un vistazo a esto.Basicamente es e procedimiento de Delphi Val
Esta si quieres mostrar la posicion del error declarando la variable Cosigo externa al procedimiento
Function TForm1.ValidarNumeros(Numeros:String):Integer;
var
Numero,Posicion:Integer;
begin
//Val convierte el string Numeros a su representante numerico Numero.
//Si no hay error Posicion es 0 y si hay error Posicion
//es el indice del caracter que representa el error
//12e45 Posicion=3
Val(Numeros,Numero,Posicion);
if Posicion <> 0 then //no es numero
begin
Result:=0;
Codigo:=Posicion;
end
else
Result:=Numero;//es numero
end;
y esta mucho mas simplificada
Function TForm1.ValidarNumeros(Numeros:String):Boolean;
var
Numero,Posicion:Integer;
begin
//Val convierte el string Numeros a su representante numerico Numero.
//Si no hay error Posicion es 0 y si hay error Posicion
//es el indice del caracter que representa el error
//12e45 Posicion=3
Val(Numeros,Numero,Posicion);
if Posicion <> 0 then //no es numero
Result:=False;
else
Result:=True;//es numero
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:isnumeric en delphi

Publicado por Osmany (1 intervención) el 11/02/2008 19:37:17
Prueba esta funcion

function IsNumber(s: string): Boolean;
var
i: Integer;
begin
Result := False;
for i := 1 to Length(s) do
case s[i] of
'0'..'9':;
else
Exit;
end;
Result := True;
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar