IvanR 0 Denunciar post Postado Agosto 13, 2008 ola a todos, tenho um programa que recebe 3 valores String posicao = grid->DataSource->DataSet->FieldByName("POS")->AsString; String veiculo = grid->DataSource->DataSet->FieldByName("VEICULO")->AsString; String tipo = grid->DataSource->DataSet->FieldByName("TIPO")->AsString; e guarda em uma list list ->Add(+posicao + veiculo + tipo); Só que tem um problema, por exemplo, se o primeiro da lista for: posição: 1 veiculo: 330 Tipo: FORD E o segundo for posição: 2 veiculo: 30 Tipo: FORD Eu tenho que imprimir no arquivo algo como 1330FORD 2030FORD Ao invés de imprimir 1303FORD 230FORD Alguem sabe como poderia completar com 0´s a casa centesimal que falta? Mascarar a saída. Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Agosto 13, 2008 nossa você esta imprimindo como string era pra vir com os zeros! Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Agosto 13, 2008 Ué..Multiplique o 2 por 1000,some e transforme em string.. Compartilhar este post Link para o post Compartilhar em outros sites
IvanR 0 Denunciar post Postado Agosto 14, 2008 é que o bd me mostra 330 e 30 e não sei se é a melhor solução concatenar, transformar pra inteiro e depois voltar pra string, já q isso pode consumir memória q pode fazer falta no futuro, mas se não conseguir achar um método da String da VCL que possa me dar um modo de fazer uma máscara preenchendo com 0´s, terei de fazer isso mesmo EDIT: estou falando mas esqueci de dizer que String da VCL é uma AnsiString http://www.dicasbcb.com.br/_livro/14.html Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Agosto 14, 2008 Mas eu não falei em concatenar...Falei em somar inteiros.Concatenar eh BEM diferente disso. Também dá na mesma se você multiplicar 2 por 10 e crie uma nova string com a concatenacao de 20 e 30... Também dá pra usar resize na string do 2 p/ 2 elementos preenchendo com 0 e concatenar com a string 30 ou usar o insert do C++. Maneira é o que não falta. Compartilhar este post Link para o post Compartilhar em outros sites
IvanR 0 Denunciar post Postado Agosto 14, 2008 falei concatenar pq ele sai como String e não como inteiro, eskeci de falar isso. Mas acabei resolvendo aki: String comprimento = RightStr("00000"+FloatToStrF(comprimentoVeiculo,ffNumber,4,2),5); vlw ai galera Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Agosto 14, 2008 Vlw por compartilhar a solução http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites