Como montar uma atualizão por arquivos .txt preciso d ajuda

Delphi

28/01/2004

Olá preciso criar um sistema de pedidos tenho tudo só falta a parte de recebimentos de dados externos vindo de arquivo texto

tenho hj uma tabela chamada PEDIDO.DBF
com campos
COD_PED|COD_CLI|ITEM |VALOR |
00000124|00001274|00CONVER120|000250|


Trabalho normal gero pedidos, cadastro excluo clientes, mas aí vem recebo pedidos de vendedores externos no formato txt vejam

PEDIDO27012004.TXT
000001240000127400CONVER120000250

Preciso montar rotinas(ainda não sei bem como funciona estes procedimentos) que quando este arquivo caia na pasta exemplo entradas de pedidos quando o modulo de atualização for inicializado ele verifique os arquivos que ainda não foram abertos e copiados os dados e copi-os, naõ sei se é assim que funciona mas imagino que seja, então gostaria de saber quais os passos certos, tipo abre o arquivo depois marca como aberto move para outra pasta ou deve ser registrado estes movimento em algum arquivo aí se sabe quem foi aberto e quem falta pois o nome do arquivo texto é criado de acordo com a data.


Um colega me passou:

Utilize uma thread ou timer para ficar monitorando se ´cai´ pedido no determinado diretório.
Você pode utilizar a classe TStringList para carregar e manipular o arquivo;
Utilize uma tabela para armazenar e consultar se o arquivo já foi importado, baseado no nome que é formado pela data e hora.


foi bom mas preciso de mais detalhes, se puderem me passar argadeço


Infohelp

Infohelp

Curtidas 0

Respostas

Paulocesar1301

Paulocesar1301

28/01/2004

http://delphi.about.com/library/weekly/aa110999.htm


GOSTEI 0
Eduprp

Eduprp

28/01/2004

Colega

Bem eu já fiz algo parecido.
Eu utilizava o AssingFile para abri o arquivo.
Lia as linhas com ReadLN e colocava em uma variável tipo WideString, depois utilizando o Copy consistia e gravava os dados recebidos.
Após o término, renomeava o arquivo txt.

Este é um outro caminho, sem precisar gravar em uma tabela os arquivos que foram lidos.

Exemplo:

procedure TForm1.LerArquivo(Sender:Tobject);
var
Arq: TextFile;
CodCliente, CodProduto: Integer;
Qtde: Double;
Linha: String;
begin
AssignFile(Arq,´c:\Pedidos\Pedido.txt´);
try
Reset(Arq);
While not Eof(Arq) do
begin
Readln(Arq ,Linha);
CodCliente:= StrToInt(Copy(Linha,1,4));
CodProduto:= StrToInt(Copy(Linha,5,4));
Qtde:= StrToFloat(Copy(Linha,9,5));
end;
CloseFile(Arq);
RenameFile(´c:\Pedidos\Pedido.txt´,´c:\Pedidos\Pedido_Lido.txt´);
except
CloseFile(Arq);
ShowMessage(´Erro de Leitura do Arquivo´)
end;
end;


GOSTEI 0
POSTAR