Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Manipulations on the huge text file
Message
De
28/04/2000 16:43:55
Oleg Khvalin
The Sutherland Group Ltd
Rochester, New York, États-Unis
 
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Autre
Divers
Thread ID:
00364631
Message ID:
00364680
Vues:
23
>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
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform