在一组循环中,为什么只考虑第一个循环?
问题描述:
这段代码是被多次调用的函数的一部分。在一组循环中,为什么只考虑第一个循环?
for r = 0 to 4
do until searchname.AtEndOfStream
lineData = lcase(searchname.ReadLine())
if instr(lineData,N(r))>0 then
if (r = 0) then
v = v + 1
elseif (r = 1) then
w = w + 1
elseif (r = 2) then
x = x + 1
elseif (r = 3) then
y = y + 1
elseif (r = 4) then
z = z + 1
end if
end if
loop
next
我的问题是它只考虑r = 0
。我试过ubound(N)
。我也尝试用v
,w
,x
,y
和z
的五个单独的循环代替for (r = 0)
循环。我已经尝试了其他几种方法和格式,但它仍然无法正常工作。
答
的r = 0
情况后,当内环已经达到searchname.AtEndOfStream
,你递增到下一个值或r
,searchname
尚处于流结束。因此,do
循环仅适用于for
循环的第一种情况。考虑这个替代方案:
do until searchname.AtEndOfStream
lineData = lcase(searchname.ReadLine())
for r = 0 to 4
if instr(lineData,N(r))>0 then
if (r = 0) then
v = v + 1
elseif (r = 1) then
w = w + 1
elseif (r = 2) then
x = x + 1
elseif (r = 3) then
y = y + 1
elseif (r = 4) then
z = z + 1
end if
end if
next
loop
通过切换循环,直到迭代完成后才能到达流的末尾。
谢谢你很快回到我身边。 完美地工作。其他方面我不会接受它。 只是想知道,如果我曾经想要通过其他结构去,我怎么能将指针移回第一个循环之后的开始? – user3782707 2014-10-04 13:59:23
那么'searchname'是什么?什么样的结构,以及它是如何创建的?你看过它的文档吗? – jonrsharpe 2014-10-04 14:26:53
'searchname'只是一个已打开的文本文件。 ('set searchname = objFSO.OpenTextFile((“C:\ Inetpub \ wwwroot \ Files \”&idname),1,true)') – user3782707 2014-10-04 14:30:11