Coldfusion 如何使用CFSCRIPT重写此代码块?

Coldfusion 如何使用CFSCRIPT重写此代码块?,coldfusion,coldfusion-8,Coldfusion,Coldfusion 8,我正在使用ColdFusion 8 我试图用CFSCRIPT编写这个代码块,但不能完全理解 <cfloop query="Q"> <cfscript> // CREATE NEW LINE NewLine = ""; NewLine = NewLine & Q.product_url; </cfscript> <cffile action="append" file="#ThisFi

我正在使用ColdFusion 8

我试图用CFSCRIPT编写这个代码块,但不能完全理解

<cfloop query="Q">
    <cfscript>
        // CREATE NEW LINE
        NewLine = "";
    NewLine = NewLine & Q.product_url;
    </cfscript>
    <cffile action="append" file="#ThisFile#" output="#NewLine#">
</cfloop>
我知道我应该打开文件,修改它,然后关闭文件。我想每增加一行,我都需要这样做

此代码有什么问题?

已修复:

<cfscript>
    myFile = fileOpen(ThisFile, "append");

    for (i = 1; i lte Q.RecordCount; i=i+1) {
        NewLine = "";
        NewLine = NewLine & Q.product_url[i];

        fileWriteLine(myFile, "#NewLine#");
    }

    fileClose(myFile);
</cfscript>
处理的问题:

您不需要每行打开和关闭文件;你打开一个文件,b写1-x行,然后c交替关闭文件,你可以用fileWrite一次写入所有内容

您不需要同时使用fileWriteLine和fileWrite,fileWriteLine用于逐行写入,而fileWrite用于一次性写入和整个数据集

我还将write改为append,以防第一次执行时写入的文件不存在。显然,如果可以保证目标文件存在,可以用write替换append。请记住,更改此选项也会随着时间的推移而增加您的文件;它可能不是您想要的,因此如果是这种情况,请将其切换回write

虽然我不能肯定没有看到您的确切错误,但我有一种预感,那就是文件写入行是罪魁祸首。

修复:

<cfscript>
    myFile = fileOpen(ThisFile, "append");

    for (i = 1; i lte Q.RecordCount; i=i+1) {
        NewLine = "";
        NewLine = NewLine & Q.product_url[i];

        fileWriteLine(myFile, "#NewLine#");
    }

    fileClose(myFile);
</cfscript>
处理的问题:

您不需要每行打开和关闭文件;你打开一个文件,b写1-x行,然后c交替关闭文件,你可以用fileWrite一次写入所有内容

您不需要同时使用fileWriteLine和fileWrite,fileWriteLine用于逐行写入,而fileWrite用于一次性写入和整个数据集

我还将write改为append,以防第一次执行时写入的文件不存在。显然,如果可以保证目标文件存在,可以用write替换append。请记住,更改此选项也会随着时间的推移而增加您的文件;它可能不是您想要的,因此如果是这种情况,请将其切换回write


虽然我不能肯定没有看到您的确切错误,但我有一种预感,那就是文件写入行是罪魁祸首。

Wow!这很容易。我直接从Adobe获得了我的示例,但我不太明白为什么需要这么详细。Shawn,当我周一回去工作的时候,我会把链接发到Adobe,在那里我得到了我在我的版本中制作的示例。非常感谢!!!哇!这很容易。我直接从Adobe获得了我的示例,但我不太明白为什么需要这么详细。Shawn,当我周一回去工作的时候,我会把链接发到Adobe,在那里我得到了我在我的版本中制作的示例。非常感谢!!!