Transferência de dados através de arquivos
.txt - Parte V
Entrando com código para gerar o arquivo de
transferência (cont.)
Para formatar a data e a hora de acordo com o layout usamos a função FormatDateTime do próprio Delphi, como vista na Listagem 1 é bem simples, ela requer dois parâmetros, o primeiro parâmetro é formato de saída desejado e o segundo parâmetro é a Data e/ou Hora que será formatado.
Já para remover o separador decimal dos valores numéricos e fixar os tamanhos desejados para alfanuméricos e numéricos criamos duas funções com os respectivos nomes de RemoverChar e PreencherStr. Essa função tem que ser declaradas no Private declarations do formulário (Listagem 2).
|
Type TFTransf = class(TForm) BtnGerar: TBitBtn; PBarGerar: TProgressBar; SQLConnec: TSQLConnection; SQLQuery: TSQLQuery; DataSetProv: TDataSetProvider; ClientDataSet: TClientDataSet; procedure
BtnGerarClick(Sender: TObject); private { Private declarations } // Declare as duas
funções criadas para esse exemplo aqui function PreencherStr(StrEntrada: string;
CharPreencher: Char; TamRetorno: Integer;
LeftPreencher:
Boolean): string; function
RemoverChar(StrEntrada: string;
CharRemover: Char): string; public {
Public
declarations } end; |
Listagem 2 – Declaração das funções PreencherStr e
RemoverChar
As Listagens 3 e 4 mostram os códigos das funções PreencherStr e RemoverChar. Os dois códigos estão amplamente comentados.
|
{
Deixa uma string do tamanho desejado
StrEntrada
O valor de entrada que será trabalhado
CharPreencher
Caractere que será usado para preencher o valor de entrada
TamRetorno
Tamanho que deverá ter a variável de retorno
LeftPreencher
Informa se o preenchimento será feito do lado
esquerdo(True) ou direito(False)
Exemplo 1:
Chamada
PreencherStr('Tadeu Pereira', '*', 20, False);
Retorno
'Tadeu Pereira*******'
Exemplo 2:
Chamada
PreencherStr('1', '0', 5, True);
Retorno '00001' } function
TFTransf.PreencherStr(StrEntrada: string;
CharPreencher: Char; TamRetorno: Integer; LeftPreencher:
Boolean): string; var Cont:
Integer; Retorno: string; begin // Variável Retorno recebe o
valor de entrada da função Retorno :=
StrEntrada;
// Inicio do loop para deixar o valor de entrada do tamanho
// informado na chamada da função for Cont := 1 to
TamRetorno do begin
// Se o tamanho da variável Retorno for maior ou igual
// ao tam informado na chamada da função sair do loop if (Length(Retorno) >= TamRetorno) then
Break; // Se não for
para preecher à esqueda da variável Retorno
// então variável Retorno recebe seu valor atual acrescido
// do caractere infomado para preecher o seu valor if not(LeftPreencher) then
Retorno := Retorno + CharPreencher // Caso seja
para preecher à esqueda da variável Retorno
// então variável Retorno recebe o caractere infomado para
// preecher mais o seu valor atual else Retorno := CharPreencher +
Retorno; end; // Retorno
da função Result :=
Retorno; end; |
Listagem 3 – Função PreencherStr
|
{
Remover um caractere da string informada
StrEntrada
O valor de entrada que será trabalhado
CharRemover
Caractere que será removido do valor de entrada
Exemplo 1:
Chamada
PreencherStr('Maria da Silvar', ' ');
Retorno
'MariadaSilvar'
Exemplo 2:
Chamada
PreencherStr('10,05', DecimalSeparator);
Retorno '1005' } function
TFTransf.RemoverChar(StrEntrada: string;
CharRemover: Char): string; var Cont: Integer; Retorno: string; begin // Limpando a variável Retorno Retorno :=
'';
// Inicio do loop para remover o caractere informado
// no segundo parâmetro de entrada da função - CharRemover for Cont := 1 to
Length(StrEntrada) do // Se o
caractere na posição Cont do parâmetro StrEntrada
// for diferente do parâmetro CharRemover então variável
// Retorno recebe seu valor atual acrescido do valor que
// estar na posição Cont do parâmetro StrEntrada if (StrEntrada[Cont] <>
CharRemover) then Retorno := Retorno +
StrEntrada[Cont];
// Retorno da função Result := Retorno; end; |
Listagem 4 – Função RemoverChar
Com todo os códigos digitados chegou a hora de testa. Com o programa compilado clique no botão gerar, depois vá até onde está o executável e abra o arquivo Transf.txt, ele deve estar parecido com a Listagem 5.
|
0200602021811411.0.0 100001111.111.111-11Jose da Silva Rua da Flores, 123 100002222.222.222-22Maria da Silva Rua Sao Pedro, 234 100003333.333.333-33Joao Carvalho Rua Sao Jose, 345 100004444.444.444-44Joana Alencar Rua Padre Cicero, 456 21234567890123Telefone XT-72 000000000008399 22345678901234Celular RM-50 000000000039050 23456789012345Carregador
para celular MP-65
000000000007800 24567890123456Bateria para celular FL-900
000000000010205 25678901234567Celular XR-60 000000000105055 90000400005
|
Listagem 5 – Arquivo Transf.txt
No próximo artigo será apresentado o projeto para receber os dados. Obrigado!!!
|
Artigo criado por http://www.cassic.com.br/ |