Página 1 de 1

TRANSPORTAR INFORMACOES DE ARQUIVO DBF

Enviado: 29 Jun 2007 17:35
por CDV
OLA PESSOAL.
GOSTARIA DE SABER COMO FACO PARA TRANSPORTAR INFORMACOES
DE UM ARQUIVO TEXTO PARA UM ARQUIVO DBF, EU SEI QUE TENHO QUE
USAR O FOPEN PARA ABRIR O ARQUIVO E FREAD PARA LER POIS EU SO
CONSIGO LER A PRIMEIRA LINHA DO ARQUIVO TEXTO MAS NAO CONSIGO LER AS INFORMACOES DA SEGUNDA LINHA EM DIANTE

SE ALGUEM PUDER ME AJUDAR AGRADECO.

Enviado: 29 Jun 2007 17:39
por Pablo César
A forma mais prática que tem (não sei se você ja a conhece) é:

USE DBF
APPEND FROM ARQUIVO.TXT SDF

Mas se o formato do seu arquivo texto tiver campos separador com vírgulas, em vez de SDF utilize DELIMITER ","

Lembre que a estrutura do seu DBF tem que correponder com a do seu arquivo.txt

Enviado: 29 Jun 2007 22:15
por Maligno
Pablo César escreveu:Lembre que a estrutura do seu DBF tem que correponder com a do seu arquivo.txt
É aí que a coisa pega. Mas não é só isso que atrapalha. Por vezes a formatação de um campo no texto não corresponde com a do DBF, como aconteceu em caso recente, numa outra tread. Daí só mesmo por análise pré-importação, com a ajuda das funções de baixo nível.
Infelizmente ainda não tenho pronto o sub-sistema de texto que comentei há pouco tempo. Ainda falta conferir a parte de gravação. Quando pronto, esse tipo de tarefa será muito simples. Exemplo do que seria:

Código: Selecionar todos

txOpen "c:\arq1.txt" alias "Source" preGet {|s|Filtro(s)+_kEOL}
txCreate tempor noIndex
txImport lines 15 to end from "Source"
//
// APPEND PARA SEU DBF
//
txClose all
Esta seria uma alternativa. O arquivo "Source" será importado da linha 15 até o fim, para "Target". Mas a leitura de cada linha de "Source" será filtrada. Este filtro poderá servir para ignorar, modificar ou reordenar alguns campos. E ao final, ambos os arquivos serão fechados, sendo o temporário apagado. Serviço simples e limpo.