Created
September 21, 2021 15:33
-
-
Save kaizhu256/5972acb2755baf01dde2c42eda7264b7 to your computer and use it in GitHub Desktop.
Revisions
-
kaizhu256 created this gist
Sep 21, 2021 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,81 @@ * https://docs.microsoft.com/en-us/previous-versions/troubleshoot/visualstudio/foxpro/export-record-memo-fields CLOSE ALL CLEAR ALL lcFieldString = '' lcMemo = '' USE GETFILE('dbf', 'Select DBF') && Prompts for table to be used. lnFieldCount = AFIELDS(laGetFields) && Builds array of fields from the && selected table. *!* Prompt for Output file and use Low-Level functions *!* to create it. lcTextFile = FCREATE(GETFILE('txt', 'Select Text')) *!* Starts scanning the table and converts the fields *!* values according to their types ** SCAN WAIT WINDOW STR(RECNO()) + ' Of ' + STR(RECCOUNT()) NOWAIT FOR lnCount = 1 TO lnFieldCount lcType = laGetFields(lnCount, 2) IF lcType # 'G' && Don't try to turn a general field into a string lcString = EVALUATE(laGetFields(lnCount, 1)) EndIf DO CASE CASE lcType = 'M' && Process the Memo Fields lnMemoLines = MEMLINES(EVALUATE(laGetFields(lnCount,1))) FOR lnLoop = 1 TO lnMemoLines IF lnLoop < lnMemoLines lcMemo = lcMemo + ; ALLTRIM(MLINE(EVALUATE(laGetFields(lnCount, 1)), ; lnLoop)) + ' ' ELSE lcMemo = lcMemo + ; ALLTRIM(MLINE(EVALUATE(laGetFields(lnCount, 1)), ; lnLoop)) ENDif ENDfor lcString = lcMemo lcMemo = '' CASE lcType = 'G' && Process the General Fields lcString = 'Gen' CASE lcType = 'D' && Process the Date Fields lcString = DTOC(lcString) CASE lcType = 'T' && Process the DateTime Fields lcString = TTOC(lcString) CASE lcType = 'N' && Process the Numeric Fields lcString = STR(lcString, LEN(STR(lcString)), 2) CASE lcType = 'I' && Process the Integer Fields lcString = STR(lcString) CASE lcType = 'L' && Process the Logical Fields IF lcString = .T. lcString = 'T' ELSE lcString = 'F' ENDif ENDcase IF lnCount < lnFieldCount && Determines if the last field was && processed and sets the closing quote. lcFieldString = lcFieldString + '"' + lcString + '"' + ',' ELSE lcFieldString = lcFieldString + '"' + lcString + '"' ENDif ENDfor FPUTS(lcTextFile, lcFieldString) && Writes string to the text file. lcFieldString = '' ENDscan FCLOSE(lcTextFile) CLOSE All CLEAR All WAIT WINDOW 'Text File Creation Completed' NOWAIT