Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
File into memory
Message
De
16/02/2011 14:46:53
 
 
À
16/02/2011 13:53:24
Jossue Vega
Healthcare Partners
New York, États-Unis
Information générale
Forum:
Visual FoxPro
Catégorie:
Autre
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:
01500435
Vues:
75
Look at http://www.stevenblack.com/text.html


>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.
Craig Berntson
MCSD, Microsoft .Net MVP, Grape City Community Influencer
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform