Cast !!

Delphi

09/02/2004

eae galera,

estou com um problema chatinho.

eu estou importando uma String de um arquivo TXT para jogar num campo Float de uma tabela. ate ae blz

o problema eh q a string esta vindo com 2 espacos brancos antes dos numeros uma coisa assim: 321.254,00 (´ ´´ ´´3´´2´´1´´.´´2´´5´´4´´,´´0´´0´), eu nao posso eliminar estes espacos em branco na hora da leitura no arquivo txt pq eles ja sao reservados para um numero q pecise de mais casas decimais

nao rola deu fazer um StrToFloat nem um StrToCurr, ja tentei

Sera q o problema eh o separador decimal?


Gods

Gods

Curtidas 0

Respostas

Ari

Ari

09/02/2004

Em todos os arquivos TXT´s que li sempre solicitei para que colocassem Zeros a esquerda do Numero, mas como não é o seu caso pq vc não dá um Trim na Variável antes de gravar


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

09/02/2004

Colega,

O erro de conversão não pode ser corrigido por meio da variável DecimalSeparator, pois a mesmo atua sobre os tipos de ponto flutuante e não sobre strings. No caso, uma solução seria:

procedure TForm1.Button1Click(Sender: TObject);
var Valor: String;
begin
Valor := ´  321.254,00´;
  ShowMessage(FormatFloat(´#,0.00´,ExtraiValor(Valor)));
end;

function TForm1.ExtraiValor(VAlor: String): Currency;
var nI: Integer;
ValorLimpo: String;
begin
ValorLimpo := ´´;
For nI := 1 to Length(Valor) do
  If Valor[nI] in [´0´..´9´] then
ValorLimpo := ValorLimpo + Valor[nI];
Result := StrToFloat(ValorLimpo)/100;
end;



GOSTEI 0
Gods

Gods

09/02/2004

acho q eu descobri

o problema eh q o valor q eu tenho esta vindo com ponto 3.254,21

fiz uma funcaozinha pra limpa.

de qualquer jeito valeu

:P


GOSTEI 0
POSTAR