PDA

Ver la Versión Completa : Buscar número en cadena


torito
19-04-2004, 18:02:41
Saludos amigos foreros, me encuentro en un dilema, tengo una cadena y en esa cadena quiero saber si existen números o es solo de carácteres, no me gustaría usar un ciclo y quiero saber si en delphi ya existe esa función...
muchas gracias

jachguate
19-04-2004, 18:24:48
podes intentar convertirlo a un número, y si la conversión falla, asumir que hay algun otro caracter...


try
StrToInt(cadena);
except
on EConvertError do
NumeroInvalido := True;
end;


Hasta luego.

;)

delphi.com.ar
19-04-2004, 18:25:50
Podes usar LastDelimiter, pero internamente no deja de hacer un ciclo:if LastDelimiter('0123456789', sCadena) > 0 Then
ShowMessage('Tiene Números');

delphi.com.ar
19-04-2004, 18:30:13
podes intentar convertirlo a un número, y si la conversión falla, asumir que hay algun otro caracter...[/code]Con la respuesta de jachguate me haces dudar... Si quieres saber si es un número válido, puedes utilizar algo como esto:
function IsInteger(Valor : String) : Boolean;
var
iRes, iErr : Integer;
begin
Val(Valor, iRes, iErr);
Result := iErr = 0;
end;

function IsNumber(Value: string): Boolean;
var
fRes: Extended;
begin
Result := TextToFloat(PChar(Value), fRes, fvExtended);
end;
Esto evitará que se produzca una excepción, si quieres saber si la cadena contiene algún número, sin importar si es solo un número, puedes usar la solución que te pase en el hilo anterior.

Saludos!

torito
19-04-2004, 19:05:25
A mi también me agrado mas la segunda respuesta, en si la primera no me resolveria mi problema, muchas gracias