>COPY ALL TO xx DELIMITED WITH TAB >STRTOFILE(CHRTRAN(FILETOSTR([xx.txt]), ["], []), [xx.txt])>
******************************************************************** * Description.......: RemFldDelim - removes character field delimiters from a set of text files. * Calling Samples...: * Parameter List....: pcDBFName * Created by........: ******************************************************************** *-------------------------------------------------------------------------- * -- Program to remove character field delimiters from a set of text files. * -- Required for Website Extract - Website Sybase import program uses delimited records; * -- but can have no character field delimited. VFP can't produce this, hence this 'fix' *-------------------------------------------------------------------------- lparameters pcDBFName local lnTxtFiles, lcPattern, lnPos, i, lcFileName, lnSelect, ; lcSendFileName, lnFileSize, lcCurState, lcIssWeek, lcString, lni if type('oJC')='O' && oJC was properly instantiated lcCurState=oJC.CurState lcIssWeek=oJC.IssWeek else lcCurState='MA' && For stand-alone testing lcIssWeek='0015' endif set safety off lnSelect=select() wait window nowait "Running RemFldDelim Special Program..." *-------------------------------------------------------------------------- * -- Calculate the list of txt file names from the pcdbfname (ojc.outtable) *-------------------------------------------------------------------------- lcPath=justpath(pcDBFName)+'\' lnPos=rat('\',pcDBFName) lcPattern=lcPath +'???'+substr(pcDBFName,lnPos+4) lcPattern=forceext(lcPattern,'txt') 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] lnFileSize=laTxtFiles[i,2] && File Size lcSendFileName = lcPath+lcCurState+'\'+left(laTxtFiles[i,1],4)+'.txt' wait window nowait 'Preparing file '+lcSendFileName if file(lcSendFileName) erase (lcSendFileName) endif if lnFileSize< 16777184 && Relatively small files <4,5MB 16,777,184 lcString=filetostr(lcFileName) lcString=strtran(lcString,'"','') strtofile(lcString,lcSendFileName) *!* append memo WorkField from (lcFileName) overwrite *!* if !empty(alltrim(WorkField)) *!* replace WorkField with strtran(WorkField,'"','') *!* copy memo WorkField to (lcSendFileName) *!* endif else && For huge files this technique doesn't work, let's try something different wait window nowait 'Preparing big file '+lcSendFileName+; chr(13)+'Size '+alltrim(str(round(lnFileSize/1024,0)))+' KB'+ ; chr(13)+'Please, wait...' local inFile, outFile, lcBuffer inFile= fopen(lcFileName) && Open a file outFile=fcreate(lcSendFileName) && Create a file do while !feof(inFile) lcBuffer=fgets(inFile,1000) && Get the string lcBuffer= strtran (lcBuffer,'"','') =fputs(outFile,lcBuffer) enddo =fclose(inFile) && Close In file =fclose(outFile) && Close Out file endif next *use in lcTempCursor select (lnSelect)>>Hello every one,