Cómo exportar campos memo con otros tipos de campo a un archivo de texto con Visual FoxPro


Resumen


En este artículo se muestra cómo exportar dinámicamente registros que contienen campos memo en una tabla, junto con los otros tipos de campo, en un archivo de texto delimitado por comas.

Más información


El código de ejemplo de este artículo sigue este orden:
  1. Solicita una tabla de origen (archivo. dbf).
  2. Solicita un archivo de texto de destino (archivo. txt).
  3. Exporte el contenido de la tabla al archivo de texto.
El código examina y determina todos los tipos de campo y todos los registros de la tabla y, a continuación, los procesa según el tipo de datos:
CLOSE ALLCLEAR ALLlcFieldString = ''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 = ''ENDscanFCLOSE(lcTextFile)CLOSE AllCLEAR AllWAIT WINDOW 'Text File Creation Completed' NOWAIT

Referencias


Para obtener información adicional sobre cómo exportar campos memo, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
95722 Cómo exportar campos memo a un archivo ASCII