como acrescentar zeros a esquerda de um campo código?

18/04/2012

0

Olá a todos, sou iniciante em delphi e estou com um probleminha e gostaria da vossa ajuda. estou trabalhando em um projeto de migração de banco de dados para um cliente, atualmente ele usa tabelas paradox e vou migrar para Firebird. fiz uma aplicação pra migrar o cadastro de produtos e obtive êxito (15 mil registros), mas estou com um problema, na tabela de produtos em paradox o campo CodPro(codigo do produto) é do tipo caracter de tamanho 13, já no banco firebird o campo procod também é caracter de tamanho 14. na tabela paradox tenho codigos assim: (001,10,000013,0789245678945) na tabela firebird tenho que completar exatamente os 14 caracteres, mesmo que tenha que colocar zeros a esquerda(exemplo: 00000000000001, 00000000000010). quero saber como devo proceder para acrescentar os zeros a esquerda até o campo ficar com 14 casas completas.

obs: uso delphi 7

desde já sou muito grato pela ajuda....

Deus abencoe a todos.
Francisco Vasconcelos

Francisco Vasconcelos

Responder

Post mais votado

18/04/2012

function StrZero(Valor : string; Quant : Integer): string;
begin
Result := Valor;
Quant := Quant - Length(Result);
if Quant > 0 then
Result := StringOfChar(0, Quant)+Result;
end;

para chamar a função tente assim

stringcomzeros := StrZero(valor,14);

Bruno Leandro

Bruno Leandro
Responder

Mais Posts

18/04/2012

Joel Rodrigues

Uma outra forma, seria tratar o código como um valor numérico e formatá-lo. Porém, isso só é aplicável se o código contém apenas números e a quantidade de zeros não influenciar, ou seja: 001=1=01=0000001.
Bom, bastaria fazer assim:
codigo = FormatFloat(00000000000000, tabela.FieldByName(´codigo´).AsInteger);


Espero que ajude. Boa sorte.
Responder

18/04/2012

Francisco Vasconcelos

valeu pela dica, muito obrigado. vou testar.
Responder

28/07/2019

Kassius Miranda

function StrZero(Valor : string; Quant : Integer): string;
begin
Result := Valor;
Quant := Quant - Length(Result);
if Quant > 0 then
Result := StringOfChar(0, Quant)+Result;
end;

para chamar a função tente assim

stringcomzeros := StrZero(valor,14);


esta função funcionou 100% obrigado por ajudar
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