Formatando Valores

Nesse artigo vou explicar uma coisa simples porém de grande utilidade quando temos que montar arquivos texto, como no padrão CNAB e entre outros.

          Nesse artigo vou explicar uma coisa simples porém de grande utilidade quando temos que montar arquivos texto, como no padrão CNAB e entre outros.

          Em alguns padrões temos um tamanho entre colunas que devemos respeitar e que não podemos simplesmente enviar o valor no tamanho original, temos que enviar o valor no tamanho do campo como exigido pelo manual, em fim, veremos na prática como criar uma classe para fazer essa formatação, e poder usar essa classe em outros forms.

Crie um novo Projeto (File/New/VCL Forms Application – Delphi)

Coloque no Form:

       3 Edits e nomeie como: EdtValorOriginal, EdtTamanho e EdtResultado.

       3 Label e na propriedade Caption de cada um coloque: Valor Original, Tamanho e Valor Formatado.

       2 Button e nomeie como BtnFormatEsq e o Caption Formatar à Esquerda e  BtnFormatDir e o Caption Formatar à Direita.

 

Organize como abaixo:


Crie uma pasta e salve o Projeto com o nome que quiser.

Adicione uma Unit ao projeto e salve com o nome UFormatacao (File/New/Unit-Delphi)

Codifique a Unit Formatacao como abaixo:


unit UFormatacao; interface function ZerosEsquerda(Texto:String ; Quant:Integer): String; function ZerosDireita(Texto:String ; Quant:Integer): String; implementation //função que irá formatar com zeros a esquerda. function ZerosEsquerda(Texto:String ; Quant:Integer): String; var I, Tamanho : Integer; Auxiliar: string; begin Auxiliar := ''; Tamanho := Length(Texto); for I := Tamanho to (Quant - 1) do Auxiliar := Auxiliar +'0'; Result := Auxiliar + Texto; end; //função que irá formatar com zeros a direita. function ZerosDireita(Texto:String ; Quant:Integer): String; var I, Tamanho : Integer; Auxiliar: string; begin Auxiliar := ''; Tamanho := Length(Texto); for I := Tamanho to (Quant - 1) do Auxiliar := Auxiliar +'0'; Result := Texto + Auxiliar; end; end.

Volte ao Formulário Principal e dê uses na Unit UFormatacao. (Alt+F11).

Implemente os seguintes códigos nos botões:

procedure TFrmFormatar.BtnFormatEsqClick(Sender: TObject); begin EdtResultado.Text := ZerosEsquerda(EdtValorOriginal.Text, StrToInt(EdtTamanho.Text)); end; procedure TFrmFormatar.BtnFormatDirClick(Sender: TObject); begin EdtResultado.Text := ZerosDireita(EdtValorOriginal.Text, StrToInt(EdtTamanho.Text)); end;

Com esse método você pode enviar o texto e a quantidade de caracteres a ser formatada, e utilizar para diversas formatações enviando o texto e a quantidade.

Compile o projeto e veja o resultado

Até a próxima.

Marco A. S. Carvalho

Artigos relacionados