Lendo arquivos de texto padronizados
A manipulação de arquivos de texto é muito utilizada hoje em dia, em sua grande parte por arquivos de compensação bancária ou interpretação de arquivos liberados por sistemas biométricos.
Podemos citar como exemplo o fato de uma loja que vende por meio de boletos bancários e recebe mensalmente do banco um arquivo com valores padronizados referentes aos pagamentos de seus clientes. Por ser um arquivo muito grande e que possui muitas informações fica inviável para a loja fazer a confirmação dos pagamentos manualmente, pra isso existem softwares que fazem a interpretação desses arquivos.
Vamos ver agora um exemplo pratico de manipulação de arquivo de texto, que pode ser adaptado de acordo com a necessidade do desenvolvedor. Nosso intuito aqui é mostrar como funciona a captação e leitura desses dados:
Tomemos como exemplo um sistema de ponto biométrico que tem como saída um arquivo de texto: crie um arquivo de texto com o seguinte padrão:
Onde a primeira coluna traz a data no format:
dd/mm/aaaa , a segunda coluna a hora no formato
hh:mm:ss e a terceira coluna mostra a matrícula do funcionário com 11 dígitos. Note que para calcular o número de horas trabalhado por um funcionário dessa empresa é necessário que o software capte os valores desse arquivo de texto e os interprete corretamente.
Vamos ao Delphi
File > New > Application. Coloque no Form um componente TButton, um TListBox e um componente TOpenDialog:
No componente TOpenDialog clique na propriedade Filter:
E coloque a seguinte definição para o filtro:
Depois clique em Ok. Dessa forma nosso componente TOpenDialog só vai procurar por Arquivos do tipo TXT.
No componente TButton coloque o seguinte código:
procedure TForm1.Button1Click(Sender: TObject);
var
ArqTxt : TextFile;
linha : string;
begin
if OpenDialog1.Execute then
if Application.MessageBox('Deseja Realmente Carregar o Arquivo Selecionado?',pchar(application.title),+MB_ICONQUESTION+MB_YESNO+MB_DEFBUTTON1) = id_yes then
begin
AssignFile(ArqTxt,OpenDialog1.FileName); // Abrir o arquivo
Reset(ArqTxt);
while not eof(ArqTxt) do
begin
Readln(ArqTxt, Linha);
listbox1.Items.add('Data: '+copy(linha, 1, 10));
listbox1.Items.add('Hora: '+copy(linha, 12, 8));
listbox1.Items.add('Matrícula: '+copy(linha, 21, 11));
listbox1.Items.add(' ');
end;
Closefile(ArqTxt);
end;
end;
Pronto! Rode o Programa e clique no Botão.
Aparecerá a caixa de diálogo para que possa selecionar o arquivo de texto, procure pelo arquivo que você criou e clique em abrir:
Aparecerá a seguinte pergunta:
Responda sim e veja o resultado. Note que o ListBox vai receber os valores de cada linha processados. Agora use sua imaginação e utilize como quiser.
Um abraço a todos! Até a próxima.
Expedito Cordeiro.