Visual FoxPro を使用して、他の種類のフィールドを含むメモ型フィールドをテキストファイルにエクスポートする方法


概要


この記事では、テーブルにメモ型フィールドが含まれているレコードを、他のフィールドの種類と共にコンマ区切り形式のテキストファイルに動的にエクスポートする方法について説明します。

詳細情報


この記事のサンプルコードは、次の順序に従っています。
  1. ソーステーブル (.dbf ファイル) の入力を求めます。
  2. ターゲットテキストファイル (.txt ファイル) の入力を求めます。
  3. 表の内容をテキストファイルにエクスポートします。
このコードは、すべてのフィールドの種類とテーブル内のすべてのレコードをスキャンして判別し、データ型に応じて処理します。
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

参照情報


メモ型フィールドのエクスポートの詳細については、以下の記事の番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
95722 メモ型フィールドを ASCII ファイルにエクスポートする方法