Fórum De arquivo texto para banco de dados #258664
16/11/2004
0
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
Curtir tópico
+ 0Posts
17/11/2004
Massuda
[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.
Gostei + 0
17/11/2004
Lucasnishimura
Fiz um para o arquivo de conciliacao do hsbc q solta extratos
soh que la a posicao dos campos eh fixa...
Gostei + 0
17/11/2004
Cpd_arim
2 vc importa o txt para o banco
e isso que vc deseja?
Gostei + 0
17/11/2004
Cpd_arim
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
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)