Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
File into memory
Message
De
16/02/2011 13:53:24
Jossue Vega
Healthcare Partners
New York, États-Unis
 
 
À
Tous
Information générale
Forum:
Visual FoxPro
Catégorie:
Autre
Titre:
File into memory
Versions des environnements
Visual FoxPro:
VFP 9 SP2
OS:
Windows XP SP2
Network:
Windows 2000 Server
Database:
Visual FoxPro
Divers
Thread ID:
01500424
Message ID:
01500424
Vues:
186
Hello all;
I wrote a prg that opens a text file, reads each line, parses the line and writes it into another file. the program works fine but it takes to long.
is there a method that i can accomplish this quicker.
A file that is about 250,000 lines takes almost 2 hours to process. Below is my prg and a few lines of the data from the input file.
the program creates a new line after every tilde.

the parameter are the file handles created with a Fopen() and fcreate()

PARAMETERS gnInFile, gnOutFile
LOCAL lnEnd,lnStrt,lnLoop,lcString

lnEnd = FSEEK(gnInFile,0,2) && end of file
lnEndLoop = lnEnd + 1
lnStrt = FSEEK(gnInFile,0) && begining of file
lnLoop = 0
lcString = FGETS(gnInFile,64)

FOR lnLoop = 1 TO lnEndLoop
* lnLoop = FSEEK(gnInFile,0,1)
WAIT WINDOW "Processing byte " + ALLTRIM(STR(lnLoop)) + " of " + ALLTRIM(STR(lnEnd)) NOWAIT

IF AT('~',lcString,1) > 0
=FPUTS(gnOutFile,SUBSTR(lcString,1,AT('~',lcString,1)))
lcString = SUBSTR(lcString,AT('~',lcString,1)+1)
ELSE
lcString = lcString + FGETS(gnInFile,64)
ENDIF

lnLoop = FSEEK(gnInFile,0,1)
IF lnLoop = lnEnd AND (EMPTY(lcString) OR ISBLANK(lcString))
EXIT
ENDIF
ENDFOR

sample of character in the input file. We must create a new line at every Tilde. ~

ISA*00* *00* *ZZ*341884003 *ZZ*113284753 *110215*1703*U*00401*104605543*0*P*>~GS*HC*341884003*113284753*20110215*1703*104605543*X*004010X098A1~ST*837*0001~BHT*0019*00*1046055430001*20110215*1127*CH~REF*87*004010X098A1~NM1*41*2*INTERACTIVE PAYER NETWORK*****46*341884003~PER*IC*EMDEON ADVANCED CLAIMING*TE*6159323021*EM*CLEPRODUCTIONTEAM@EMDEON.COM~NM1*40*2******46*113284753~HL*1**20*1~NM1*85*2*PRAKASHCHANDRA M. RAO, M.D., P*****XX*1326296039~N3*3130 GRAND CONCOURSE~N4*BRONX*NY*10458~REF*EI*010567880~REF*G5*0001~REF*G2*101439~HL*2*1*22*1~SBR*P**999999******ZZ~NM1*IL*1*FUENTES*JUANUTA****MI*16705189~N3*1770 BRUCKNER BLVD*13B~N4*BRONX*NY*10473~DMG*D8*19400518*F~NM1*PR*2*HERITAGE*****PI*11328~HL*3*2*23*0~PAT*21~NM1*QC*1*FUENTES*JUANITA

Thank you in advance for your time and efforts.
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform