FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour copiar un archivo txt a dbf
Posts: 652
Joined: Wed Oct 19, 2005 12:03 PM
copiar un archivo txt a dbf
Posted: Mon Jun 23, 2014 12:24 AM
En su momento hice consultas sobre este t贸pico y no pude resolverlo para poder ser utilizado ya que los archivos txt alrededor de 80 megas que corresponden a Impuestos Nacionales y Provinciales. Demoraban una enormidad de tiempo en leerlo y pasarlo a una dbf. Me lo resolvi贸 desde Nicaragua Carlos Vargas y desde hace a帽os lo utilizo. El proceso es rapid铆simo tarda a los sumo 10 segundos en pasar el txt a dbf, utilizando visual fox pro, luego como ten铆a visual fox pro 9, modifique el programa que generosamente me envi贸 (me lo envi贸 con fuentes y dlls), sin tener mucha idea pero logre hacerlo funcionar, para rentas provincia y capital.

Estoy tratando de poder hacerlo solamente con harbour
El archivo sus primeros renglones son

21122012;01012013;31032013;20000009637;C;S;N;6,00;4,50;00;00;AZUACA GUILLERMO
21122012;01012013;31032013;20000241254;D;S;N;6,00;4,50;00;00;RAMOS SANTIAGO JUAN
21122012;01012013;31032013;20000439771;D;S;N;6,00;4,50;00;00;MENDIZABAL,LUIS MARIA
21122012;01012013;31032013;20000561860;D;S;N;6,00;4,50;00;00;CROLERO MANLIO JUAN


Para que tengan una idea son 436536 l铆neas. (Y este es el mas peque帽o de todos 35 megas)

Lo hice con la clase txt
oTxtfil := TTxtFile():New( MfILE )

lo hac铆a pero demoraba como 15 a 20 minutos, por eso lo deseche, hice otros intento pero con los mismos resultados
Ahora estoy probando con append from lo intente pero me da error
Error description: Error DBCMD/1005 Error de argumento: __DBAPP

Stack Calls
===========
Called from: => __DBAPP( 0 )
Called from: ../../../dbdelim.prg => __DBDELIM( 0 )
Called from: origen.prg => LEO( 717 )



El programa es as铆

Code (fw): Select all Collapse
聽function leo()
聽
聽 聽 聽 LOCAL aStru := { { "field1" 聽 聽 , "C", 聽8, 0 }, ; 
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽{ "field2" 聽 聽 , "C", 聽8, 0 }, ; 
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽{ "field3" 聽 聽 , "C", 8, 0 }, ; 
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽{ "field4" 聽 聽 , "C", 聽11, 0 }, ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽{ "field5" 聽 聽 , "C", 聽1, 0 }, ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽{ "field6" 聽 聽 , "C", 聽1, 0 }, ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽{ "field7" 聽 聽 , "C", 聽1, 0 }, ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽{ "field8" 聽 聽 , "C", 聽5, 0 }, ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽{ "field9" 聽 聽 , "C", 聽5, 0 }, ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽{ "field10" 聽 聽 , "C", 聽2, 0 }, ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽{ "field11" 聽 聽 , "C", 聽2, 0 }, ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽{ "field12", "C", 35, 0 } } 
聽 聽 
聽 聽 
聽 聽 聽LOCAL cFileTXT := "padron.txt" 
聽 聽 聽LOCAL cFileDBF := "AgenRet.dbf"

聽 聽 聽 dbCreate( cFileDBF, aStru ) 
聽 聽 聽USE ( cFileDBF )
聽
聽
cDefEol := SET( _SET_EOL, chr( 13 ) ) 
APPEND FROM ( cFileTXT ) DELIMITED WITH ";" 
APPEND FROM ( cFileTXT ) DELIMITED WITH ( { ",",";" } ) 
SET( _SET_EOL, cDefEol ) 

聽 聽 聽 聽 return nil


Buscando por internet encontre la 煤ltima parte de c贸digo pero me da el error descripto.

Gracias por su atenci贸n
Posts: 729
Joined: Tue Oct 18, 2005 06:49 PM
Re: copiar un archivo txt a dbf
Posted: Mon Jun 23, 2014 10:54 AM
Code (fw): Select all Collapse
 APPEND FROM cFileCSV DELIMITED WITH (,)

Regards,

George

Continue the discussion