Fórum Gravando em arquivo txt #260915
01/12/2004
0
Tenho um arquivo texto onde preciso gravar seus registros em um banco de dados.
Cada registro é separado por um |, ao ler este registro o programa me retorna normalmente cada registro sem erro, porem apartir da segunda linha ele me retorna o primeiro registro como | e os outros normalmente, enquando o primeiro deveria ser o nome da empresa.
o arquivo é este :
[color=darkred:a91ff0e4cc] Holdercim Brasil S/A* | Italva | Rod. Br. 356 - KM 68 - B: Paraíso | RJ | 28.250-000 | 60.869.336/0091-73 | NULL |81071926| NULL |1| Fábrica de Cimento
Hotel Aeroporto Ltda - EPP* | Vitória | Rua Ary Ferreira Chagas, 30 - Mata da Praia | ES | 29.065-280 | 03.270.127/0001-19 | NULL | NULL | As atualizações deverá ser enviada para o email do Sr. Ricardo Augusto. Email: servetc@mailbr.com.br |1| Hospedagem || aeroporto@alvetur.com.br |
Orgbristol Organizações Bristol Ltda Edifício Costa Vitória* | Vitória | PRC Doutor Luind, 90 apto 103 - Lagoa Santa | ES | 33.400-000 | 23.306.087/0015-20 | NULL | NULL | As atualizações deverá ser enviada para o email do Sr. Ricardo Augusto. Email: servetc@mailbr.com.br Email do Encarregado de compras: ssupri@terra.com.br ENDEREÇO P/ FATURAMENTO Condomínio do Edif. Costa Vitória Rua Chapot Presvort, 25 - Praia do Canto Vitória - ES 29.055-410 |1| Condomínio || bfinanceiro@terra.com.br |
[/color:a91ff0e4cc]
e o programa é este:
Cada registro é separado por um |, ao ler este registro o programa me retorna normalmente cada registro sem erro, porem apartir da segunda linha ele me retorna o primeiro registro como | e os outros normalmente, enquando o primeiro deveria ser o nome da empresa.
o arquivo é este :
[color=darkred:a91ff0e4cc] Holdercim Brasil S/A* | Italva | Rod. Br. 356 - KM 68 - B: Paraíso | RJ | 28.250-000 | 60.869.336/0091-73 | NULL |81071926| NULL |1| Fábrica de Cimento
Hotel Aeroporto Ltda - EPP* | Vitória | Rua Ary Ferreira Chagas, 30 - Mata da Praia | ES | 29.065-280 | 03.270.127/0001-19 | NULL | NULL | As atualizações deverá ser enviada para o email do Sr. Ricardo Augusto. Email: servetc@mailbr.com.br |1| Hospedagem || aeroporto@alvetur.com.br |
Orgbristol Organizações Bristol Ltda Edifício Costa Vitória* | Vitória | PRC Doutor Luind, 90 apto 103 - Lagoa Santa | ES | 33.400-000 | 23.306.087/0015-20 | NULL | NULL | As atualizações deverá ser enviada para o email do Sr. Ricardo Augusto. Email: servetc@mailbr.com.br Email do Encarregado de compras: ssupri@terra.com.br ENDEREÇO P/ FATURAMENTO Condomínio do Edif. Costa Vitória Rua Chapot Presvort, 25 - Praia do Canto Vitória - ES 29.055-410 |1| Condomínio || bfinanceiro@terra.com.br |
[/color:a91ff0e4cc]
e o programa é este:
var arq: TextFile; S: string; camp : array[1..14] of tam; i,f,t, poscam: integer; begin AssignFile(arq, edtCaminho.Text); Reset(arq); i:=1; f:=0; poscam:=1; t:=0; while not eof(arq) do begin readln(arq,s); f:=0; t:=0; for f:=1 to length(s) do begin t:=t+1; if (copy(s,f,1) = ´|´) then begin camp[poscam, 1]:=i; camp[poscam, 2]:=t-1; ShowMessage(trim(copy(s,camp[poscam,1], camp[poscam,2]))); i:=f+1; t:=0; poscam:=poscam + 1; end; end; end; CloseFile(arq); end;
Douglasf
Curtir tópico
+ 0
Responder
Posts
01/12/2004
Motta
Já vi esta questão aqui.
Eu prefiro fazer uma rotina proprietaria para carga, mas já vi referencias (nunca testei) de comp´s que fazem isto.
Trabalho com Oracle, em geral eu prefiro fazer estas rotinas em pl/sql e rodar no bd.
Para arquivos deste tipo em delphi faria.
Criar um TRecord com o formato do arquivo
Criar um array deste TRecord
ler o arquivo e montar o array
ler o array e gravar no bd.
Eu prefiro fazer uma rotina proprietaria para carga, mas já vi referencias (nunca testei) de comp´s que fazem isto.
Trabalho com Oracle, em geral eu prefiro fazer estas rotinas em pl/sql e rodar no bd.
Para arquivos deste tipo em delphi faria.
Criar um TRecord com o formato do arquivo
Criar um array deste TRecord
ler o arquivo e montar o array
ler o array e gravar no bd.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)