Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Manipulations on the huge text file
Message
 
 
To
28/04/2000 16:43:55
Oleg Khvalin
The Sutherland Group Ltd
Rochester, New York, United States
General information
Forum:
Visual FoxPro
Category:
Other
Miscellaneous
Thread ID:
00364631
Message ID:
00364689
Views:
27
Hi Oleg,

I think, this technique works, but it takes too much time, for my regret. Is there another faster solution?

Thanks in advance.

>>Hi everyone,
>>
>>I have a huge text file (~100 000 records with ~50-60 fields), Tab delimited. I need to remove all double quotations from this file.
>>
>>This is the algorithm, we used. It doesn't work on big files - we have an error: "String is too big to fit".
>>
>>What else could you suggest besides low-level functions?
>>
>>
>>lntxtfiles=adir(laTxtFiles, lcPattern) && Retrieve list of text files
>>
>>*--------------------------------------------------------------------------
>>* -- loop through the array and perform string transformations in each text file
>>*--------------------------------------------------------------------------
>>create cursor lcTempCursor ;
>>                (WorkField M)
>>append blank
>>
>>for i=1 to lnTxtFiles
>>    lcFileName=lcPath+laTxtFiles[i,1]
>>    lcSendFileName = lcPath+ojc.CurState+'\'+left(laTxtFiles[i,1],4)+'.txt'
>>    if file(lcSendFileName)
>>        erase (lcSendFileName)
>>    endif
>>        append memo WorkField from (lcFileName) overwrite
>>     if !empty(alltrim(WorkField))
>>          replace WorkField with strtran(WorkField,'"','')
>>          copy memo WorkField to (lcSendFileName)
>>     endif
>>next
>
>Nadya,
>for large files I'd use FOPEN - FGETS - FPUTS
>something like this:
>inFile= FOPEN(lcFileName)
>outFile=FCREATE(lcSendFileName)
>DO WHILE FEOF(inFile)
> lcBuffer=FGETS(inFile,1000)
> lcBuffer= strtran (lcBuffer,'"','')
> =FPUTS(outFile,lcBuffer)
>ENDDO
>close all
>
>HTH
>Oleg
If it's not broken, fix it until it is.


My Blog
Previous
Reply
Map
View

Click here to load this message in the networking platform