Evi*_*mes 1 coldfusion coldfusion-8
我正在使用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>
Run Code Online (Sandbox Code Playgroud)
这是CFSCRIPT
// LOOP THROUGH QUERY RESULTS
for (i = 1; i lte Q.RecordCount; i=i+1) {
// CREATE NEW LINE
NewLine = "";
NewLine = NewLine & Q.product_url[i];
// READ THE FILE
File = fileOpen(ThisFile, "read");
// WRITE NEW LINE TO FILE
fileWriteLine(File, "#NewLine#");
fileWrite(ThisFile, File);
fileClose(File);
}
Run Code Online (Sandbox Code Playgroud)
我知道我应该打开文件,修改它,然后关闭文件.我想我需要添加每个新行.
这段代码出了什么问题?
固定:
<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>
Run Code Online (Sandbox Code Playgroud)
解决的问题:
您不要每行打开和关闭文件; 你a)打开文件,b)写1-x行,然后c)关闭文件(或者,你可以一次写出来fileWrite())
您不需要fileWriteLine和fileWrite,fileWriteLine用于逐行写入,而fileWrite用于一次性写入和整个数据集.
我还将"写入"更改为"追加",以防您在第一次执行时写入的文件不存在 - 显然,如果您可以保证目标文件存在,则可以将"追加"替换为"写".请记住,更改此设置也会随着时间的推移而增加您的文件; 它可能不是您想要的,因此如果是这种情况,请将其切换回"写入".
虽然我不能确定没有看到你的确切错误,但我有预感,这是FileWrite()罪魁祸首.