4
<cfquery name="writefile" datasource="#dsn#">
    SELECT abc,def,pqr,stu,zex
    FROM mytable
</cfquery>


<cfoutput>
    <table>
        <cfloop query="writefile">
            <tr>
                <cfloop list="#ArrayToList(writefile.getColumnNames())#" index="col">
                    <cffile action="write" file="d:\test.txt"      output="#writefile[col][currentrow]#"> 

                </cfloop>
            </tr>   
        </cfloop>
    </table>

</cfoutput>

上記のコードを使用して、cffile を使用してテキスト ファイルを特定の場所に書き込みます。

しかし、テキスト ファイルには、クエリのすべての結果が含まれているわけではありません。私を案内してください。

4

1 に答える 1

10

cffile action="write"を使用すると、毎回ファイルがリセットされます。

action="append"を使用して、最初にファイルを空白にせずにコンテンツをファイルに追加します。

また、最初に文字列を作成してから、1 回のアクションでファイルに書き込むことも検討する必要があります。

例えば:

<cfset Content = "" />
<cfloop query="writefile">
    <cfloop array=#writefile.getColumnNames()# index="col">
        <cfset Content &= ' ' & writefile[col][currentrow] />
    </cfloop>
    <cfset Content &= chr(10) />
</cfloop>

<cffile action="write" file="d:\test.txt" output="#FileContent#" />

(注: 簡単にするために文字列連結を使用しています。パフォーマンスが重要な場合は、代わりに StringBuilder や cfsavecontent を使用することを検討してください。)

于 2013-01-08T16:35:38.280 に答える