Transferência de dados através de arquivos .txt - Parte V
Ainda que a troca de informações entre sistemas modernos utilizem XML, sistemas legado ainda utilizam arquivos texto para o mesmo pretexto. Logo os sistemas modernos devem gerar arquivos texto para se comunicar com sistemas legados.
Transferência de dados através de arquivos .txt - Parte V
Iniciando um novo projeto para transmitir os dados (cont.)
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/ |
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo