Coldfusion RemoveChars函数的2参数现在为0,必须为正整数
我在浏览zzvp.cfm页面时遇到此错误Coldfusion RemoveChars函数的2参数现在为0,必须为正整数,coldfusion,coldfusion-9,Coldfusion,Coldfusion 9,我在浏览zzvp.cfm页面时遇到此错误 The 2 parameter of the RemoveChars function, which is now 0, must be a positive integer The error occurred in /www/zzvp.cfm: line 578 Called from /www/zzvp.cfm: line 530 Called from /www/zzvp.cfm: line 1 576 : &
The 2 parameter of the RemoveChars function, which is now 0, must be a positive integer
The error occurred in /www/zzvp.cfm: line 578
Called from /www/zzvp.cfm: line 530
Called from /www/zzvp.cfm: line 1
576 : <cfset updir = #RemoveChars(updir, len(updir), 1)#>
577 : <cfloop condition = "Right(updir, 1) neq '\'">
578 : <cfset updir = #RemoveChars(updir, len(updir), 1)#>
579 : </cfloop>
580 : <th class=chkbx><input type=checkbox width='13px'
class=chkbx></th><td width="20%"><strong><a href="?action=goto&scr=#updir#">..</a></strong></td>`
RemoveChars函数的2参数现在为0,必须是正整数
错误出现在/www/zzvp.cfm:第578行
从/www/zzvp.cfm调用:第530行
从/www/zzvp.cfm调用:第1行
576 :
577 :
578 :
579 :
580:`
关于如何解决这个问题,有什么想法吗?即使我不了解代码背后的逻辑,下面介绍您的问题 出现错误,因为字符串长度变为零,但仍然未找到
\
。添加额外条件以检查循环中字符串的长度
<cfloop condition = "Right(updir, 1) neq '\' AND len(updir)">
<cfset updir = RemoveChars(updir, len(updir), 1)>
</cfloop>
对于这个逻辑,我认为有更好的方法来实现这个逻辑而不需要循环。见下文
<!--- Treat string as a list with \ as delimiter --->
<cfset updir = ListDeleteAt(updir, listlen(updir,'\'), '\') >
或
错误消息的意思与它所说的完全一致。您正在使用错误的参数调用函数。如文档和错误消息中所述,第二个参数必须大于零。到目前为止,您试图解决的问题是什么?在进行了第一组更改
之后,我得到了相同的错误,但第577行575:576:577:578:579:@martin不需要循环。用此
替换cfloop
。我会设法找出出错的原因。你能发布一个示例输入吗?因此,删除循环并最终看起来像@martin我要说的是替换整个
块<代码>
您好,谢谢,但即使您做了更改,我也无法使其正常工作。不过还是谢谢你的帮助
<!--- Reverse string --->
<cfset updir = Reverse(updir)>
<!--- Get from left till the position of the \ --->
<cfset updir = Left( Reverse(updir), len(updir) - find(updir , '\') + 1 ) >