Como posso retirar somente os numeros de uma String?

08/01/2004

0

E ai pessoal estou com um pequeno probleminha preciso calcular um valor so que pra isso preciso tirar as primeiras posiçoes da String que ta no formato ´R$ 32,00´ preciso descartar o ´R$´ para converter para float, tem como eu pegar somente o ´32,00´ para fazer o calculo? Agradeço desde ja... :lol:


Marcusbraga

Marcusbraga

Responder

Post mais votado

08/01/2004

Colega,

Na verdade as funções disponíveis do Delphi não conseguem converter string que contenham separadores de milhares e símbolos de moedas. Preparei uma pequena função para resolver o seu problema:

function TextToCurr(Texto: String): Currency;
var nI: Integer;
TextoLimpo: String;
begin
TextoLimpo := ´´;
For nI := 1 to Length(Texto) do
  begin
  if Texto[nI] in [´0´..´9´,´,´] then
TextoLimpo := TextoLimpo + Texto[nI];
  end;
  Result := StrToCurr(TextoLimpo);
end;



Aroldo Zanela

Aroldo Zanela
Responder

Mais Posts

09/01/2004

Alexdias

ESSE VALOR QUE VC PRECISA CALCULAR É UM CAMPO DE SUA TABELA ?
SE A RESPOSTA FOR SIM ... ENTÃO NÃO TENTE CALCULAR ASSIM .

EX 1 ==>dbedit1.text:= dbedit1.text+dbedit2.text; ( erro )

ex 2 ==> query1.fieldbyname(´valor1´).value:=query1.fieldbyname(´valor1´).value+query1.fieldbyname(´valor2´).value;
dbedit.text:=floattostr(query1.fieldbyname(´valor1´).value);

obs : use variaveis para facilitar e encurtar o codigo ;
espero que sirva !!!


Responder

09/01/2004

Marcusbraga

meus agradecimentos a Aroldo Zanela vai ser muito util essa função pra mim valeu mesmo!!!

function TextToCurr(Texto: String): Currency;
var nI: Integer;
TextoLimpo: String;
begin
TextoLimpo := ´´;
For nI := 1 to Length(Texto) do
begin
if Texto[nI] in [´0´..´9´,´,´] then
TextoLimpo := TextoLimpo + Texto[nI];
end;
Result := StrToCurr(TextoLimpo);
end;


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar