terça-feira, 23 de dezembro de 2008

Função para retirar somente números de uma string em Delphi

Declare na Seção.

  private
     Function SoNumero(Texto : String) : String;
     Function IsDigit(Texto : string) : Boolean;

Depois da directiva de compilação.

{$R *.dfm}


Function TFrmExportacaoContabilidade.SoNumero(Texto : String) : String;
var
Ind    : Integer;
TmpRet : String;
begin
TmpRet := '';
for Ind := 1 to Length(Texto) do
    begin
    if IsDigit(Copy(Texto,Ind,1)) then
       begin
       TmpRet := TmpRet + Copy(Texto, Ind, 1);
       end;
    end;
Result := TmpRet;
end;

function TFrmExportacaoContabilidade.IsDigit(Texto: string): boolean;
begin
 result := true;
 try
    StrToInt(Texto);
 except
    result := false;
 end;
end;


2 comentários:

Anônimo disse...

mais elegante:

var
I: integer;
S: string;
begin
S := '';
for I := 1 To Length(Texto) Do
begin
if (Texto[I] in ['0'..'9']) then
begin
S := S + Copy(Texto, I, 1);
end;
end;
result := S;
end;

Anônimo disse...

Quebrou um galho.Muito obrigado