Fórum De arquivo texto para banco de dados #258664

16/11/2004

0

Boa noite amigos tenho uma duvida que se fosse solucionada ia me fazer ganhar um tempão na minha rotina de trabalho.
Bem é o seguinte.
Em um diretório tenho N numeros de arquivos *.txt e gostaria dae uma forma altomatica de passa-los para um banco de dados.
Se a função conseguisse ler algo como *.txt seria lindo mas se isso for complicado estes arquivos podem ser numerados de 01.. N.
Pesso uma orientação de por onde começar ou como agir.
Não estou pedindo para que ninguém deselvolva ( trabalhe ) para mim.
Tenho forte intenção de me tornar um deselvolvedor de nivel na plataforma e para isso é necessario que eu mais que solucinoe os problemas mas aprenda a interagir de modo eficiente com a ferramenta a ponto de conseguir vislumbrar o grau de dificuldade ou facilidade de determinas requicições.
de ante mão obrigado pela ajuda.


Guibes

Guibes

Responder

Posts

17/11/2004

Massuda

Acho que podemos dividir isso em dois problemas:
[list:a954beb705][*:a954beb705]como listar os arquivos *.txt em um determinado diretório e[*:a954beb705]como importar cada arquivo para o BD[/list:u:a954beb705]O primeiro problema você resolve usando as funções FindFirst, FindNext e FindClose disponíveis em SysUtils. Agora, a segunda questão fica em aberto, pois depende do conteúdo dos arquivos e do seu banco de dados.


Responder

Gostei + 0

17/11/2004

Lucasnishimura

realmente teria de saber se eh um arquivo tabulado, serparado por virgula..

Fiz um para o arquivo de conciliacao do hsbc q solta extratos
soh que la a posicao dos campos eh fixa...


Responder

Gostei + 0

17/11/2004

Cpd_arim

1 vc precisa criar o banco
2 vc importa o txt para o banco
e isso que vc deseja?


Responder

Gostei + 0

17/11/2004

Cpd_arim

procedure Testoque1.Button1Click(Sender: TObject);
var
txt : textfile;
entrada : string;
begin
Assignfile(txt,´c:\seuarquivotexto.txt´);\\o diretorio e o nome do seu txt
reset(txt);
while not eoln(txt) do
begin
readln(txt,entrada);
table1.insert;
table1filcod.Value:=copy(entrada,01,02);\\aqui o ,01 a coluna onde começa e o 02 o tamanho
table1codpec.Value:=copy(entrada,03,22);\\ex inicia na coluna 1 e tamanho 2
table1sitpec.Value:=copy(entrada,25,03);
table1codcla.Value:=copy(entrada,28,22);
table1qtdest.Value:=copy(entrada,50,07);
table1qtdand.Value:=copy(entrada,57,07);
table1qtddef.Value:=copy(entrada,64,07);
table1cusatu.Value:=copy(entrada,71,14);
table1cuscon.value:=copy(entrada,89,14);
table1cusicm.Value:=copy(entrada,107,11);
table1cusmoe.Value:=copy(entrada,125,11);
table1cusrep.Value:=copy(entrada,143,11);
table1atuand.Value:=copy(entrada,161,11);
table1conand.Value:=copy(entrada,179,11);
table1icmand.Value:=copy(entrada,197,11);
table1moeand.Value:=copy(entrada,215,11);
table1repand.Value:=copy(entrada,233,11);
table1prient.Value:=copy(entrada,251,08);
table1ultent.Value:=copy(entrada,259,08);
table1ultsai.Value:=copy(entrada,267,08);
table1ultaju.Value:=copy(entrada,275,08);
table1ultinv.Value:=copy(entrada,283,08);
table1ultcus.Value:=copy(entrada,291,08);
table1ultpre.Value:=copy(entrada,299,11);
table1girtot.Value:=copy(entrada,312,05);
table1girbru.Value:=copy(entrada,317,05);
table1girver.Value:=copy(entrada,322,05);
table1.Refresh;
end;
closefile(TXT);
Table1.First;
ProgressBar1.Max := Table1.RecordCount;
for i := 1 to Table1.RecordCount do
begin
Table1.Next;
ProgressBar1.Position := i;
end;
ProgressBar1.Position := 0;
end;

qualquer duvida envie um email cpd_arim@hotmail.com


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar