标题:编写关于dir的程序时出现问题
只看楼主
renxiaoyao36
Rank: 9Rank: 9Rank: 9
来 自:七宝中学
等 级:贵宾
威 望:31
帖 子:347
专家分:1077
注 册:2014-9-18
结帖率:92.31%
已结贴  问题点数:15 回复次数:8 
编写关于dir的程序时出现问题
以下是代码(红色为报错句)
Dim Rub
Dim sTmp As String * MAX_LEN '存放结果的固定长度的字符串
Dim nLength As Long '字符串的实际长度
Dim pidl As Long '某特殊目录在特殊目录列表中的位置
Dim sTmp2 As Integer '临时存储变量
Dim sTmp3(0 To 100) As Integer 'A数值存储数组"
Command1.Enabled = False

Dim ab As Integer
ListView1.ListItems.Add , , "获取Cookies目录"
SHGetSpecialFolderLocation 0, COOKIES, pidl
SHGetPathFromIDList pidl, sTmp
ListView1.ListItems(1).SubItems(1) = Left(sTmp, InStr(sTmp, Chr(0)) - 1)
ListView1.ListItems.Add , , "获取Temp目录"
sTmp2 = GetTempPath(MAX_LEN, sTmp)
ListView1.ListItems(2).SubItems(1) = Left(sTmp, sTmp2)
ListView1.ListItems.Add , , "获取System目录"
sTmp2 = GetSystemDirectory(sTmp, MAX_LEN)
ListView1.ListItems(3).SubItems(1) = Left(sTmp, sTmp2)
ListView1.ListItems.Add , , "获取网页临时文件目录"
SHGetSpecialFolderLocation 0, PAGETMP, pidl
SHGetPathFromIDList pidl, sTmp
ListView1.ListItems(4).SubItems(1) = Left(sTmp, InStr(sTmp, Chr(0)) - 1)


Dim a As Integer
ListView1.ListItems.Add , , "Cookies文件"
Rub = Dir(ListView1.ListItems(1).SubItems(1) & "\*.*")
ListView1.ListItems(a + 5).SubItems(1) = Rub
ListView1.ListItems(a + 5).SubItems(2) = "等待删除"
a = a + 1

sss:
On Error GoTo sss2
Rub = Dir
ListView1.ListItems.Add , , "Cookies文件"
ListView1.ListItems(a + 5).SubItems(1) = Rub
ListView1.ListItems(a + 5).SubItems(2) = "等待删除"
a = a + 1
GoTo sss
sss2:
On Error GoTo 0
ListView1.ListItems(a + 4).SubItems(1) = "搜索完毕!"
ListView1.ListItems(a + 4).SubItems(2) = ""
sTmp3(0) = a + 4

Rub = Dir(ListView1.ListItems(2).SubItems(1) & "*.*")
ListView1.ListItems.Add , , "Tmp文件"
ListView1.ListItems(a + 5).SubItems(1) = Rub
ListView1.ListItems(a + 5).SubItems(2) = "等待删除"
a = a + 1
sss3:
On Error GoTo sss4
Rub = Dir
ListView1.ListItems.Add , , "Tmp文件"
ListView1.ListItems(a + 5).SubItems(1) = Rub
ListView1.ListItems(a + 5).SubItems(2) = "等待删除"
a = a + 1
GoTo sss3
sss4:
ListView1.ListItems.Add , , "Tmp文件"
ListView1.ListItems(a + 5).SubItems(1) = "搜索完毕!"
sTmp3(1) = a + 5

On Error GoTo 0










Rub = Dir(ListView1.ListItems(3).SubItems(1) & "\*.*")
ListView1.ListItems.Add , , "网页临时文件"
ListView1.ListItems(a + 5).SubItems(1) = Rub
ListView1.ListItems(a + 5).SubItems(2) = "等待删除"
a = a + 1
sss5:
On Error GoTo sss6
Rub = Dir
ListView1.ListItems.Add , , "网页临时文件"
ListView1.ListItems(a + 5).SubItems(1) = Rub
ListView1.ListItems(a + 5).SubItems(2) = "等待删除"
a = a + 1
GoTo sss5
sss6:
On Error GoTo 0
ListView1.ListItems.Add , , "网页临时文件"
ListView1.ListItems(a + 5).SubItems(1) = "搜索完毕!"
sTmp3(1) = a + 5
报错讯息为:5号错误:无效的过程调用或参数。
不知道改动了什么出现了这个错误。

[ 本帖最后由 renxiaoyao36 于 2015-3-26 18:03 编辑 ]
搜索更多相关主题的帖子: 字符串 Cookies 
2015-03-26 18:01
renxiaoyao36
Rank: 9Rank: 9Rank: 9
来 自:七宝中学
等 级:贵宾
威 望:31
帖 子:347
专家分:1077
注 册:2014-9-18
得分:0 
这层发错了,多发了一次。

[ 本帖最后由 renxiaoyao36 于 2015-3-26 18:05 编辑 ]

编程蛋疼的不是枯燥,而是辛辛苦苦编完几百行的代码,运行,“Runtime Error “xxx””。
2015-03-26 18:02
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
得分:8 
这代码写的...。
既有goto又有相类似的赋值语句,肯定优化空间大大的。
2015-03-26 20:48
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:735
专家分:3478
注 册:2013-1-26
得分:8 
dir函数在第一次调用时必须带参数。你查查程序跳转到sss3前,有没有调用过dir。

大开眼界
2015-03-27 09:53
renxiaoyao36
Rank: 9Rank: 9Rank: 9
来 自:七宝中学
等 级:贵宾
威 望:31
帖 子:347
专家分:1077
注 册:2014-9-18
得分:0 
回复 4楼 lianyicq
掉用过

编程蛋疼的不是枯燥,而是辛辛苦苦编完几百行的代码,运行,“Runtime Error “xxx””。
2015-03-28 21:35
renxiaoyao36
Rank: 9Rank: 9Rank: 9
来 自:七宝中学
等 级:贵宾
威 望:31
帖 子:347
专家分:1077
注 册:2014-9-18
得分:0 
回复 5楼 renxiaoyao36
但是我重新更新过dir函数的值了
而且我第一次编写的时候没有加上第三个循环,只有两个循环却正常。

编程蛋疼的不是枯燥,而是辛辛苦苦编完几百行的代码,运行,“Runtime Error “xxx””。
2015-03-28 21:37
renxiaoyao36
Rank: 9Rank: 9Rank: 9
来 自:七宝中学
等 级:贵宾
威 望:31
帖 子:347
专家分:1077
注 册:2014-9-18
得分:0 

请版主原谅,我这个很急求,必须要知道为什么,只能人工置顶了,请原谅。

编程蛋疼的不是枯燥,而是辛辛苦苦编完几百行的代码,运行,“Runtime Error “xxx””。
2015-03-30 16:04
lianyicq
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:26
帖 子:735
专家分:3478
注 册:2013-1-26
得分:0 
回复 7楼 renxiaoyao36
好不容易构建了你的工程环境。原代码是靠检错来进入下一类文件列表,但检错后,错误发生时DIR返回值为"",再次不含参数调用就出错。
如列cookies文件,全部改goto循环语句为
程序代码:
ListView1.ListItems.Add , , "Cookies文件"
Rub = Dir(ListView1.ListItems(1).SubItems(1) & "\*.*")
ListView1.ListItems(a + 5).SubItems(1) = Rub
ListView1.ListItems(a + 5).SubItems(2) = "等待删除"
a = a + 1

While (Rub <> "")
Rub = Dir
ListView1.ListItems.Add , , "Cookies文件"
ListView1.ListItems(a + 5).SubItems(1) = Rub
ListView1.ListItems(a + 5).SubItems(2) = "等待删除"
a = a + 1
Wend

ListView1.ListItems(a + 4).SubItems(1) = "搜索完毕!"
ListView1.ListItems(a + 4).SubItems(2) = ""
sTmp3(0) = a + 4
这样列表都正常。


[ 本帖最后由 lianyicq 于 2015-3-31 11:15 编辑 ]

大开眼界
2015-03-31 11:12
renxiaoyao36
Rank: 9Rank: 9Rank: 9
来 自:七宝中学
等 级:贵宾
威 望:31
帖 子:347
专家分:1077
注 册:2014-9-18
得分:0 
抱歉,有事忘记结贴了
我的问题已经解决了。方法是:
将每个DIR模块分别写SUB,在需要使用DIR时用SUB来调用,就不会出现问题了。
很抱歉,没有结贴……
楼上版主说得对,很感谢!

编程蛋疼的不是枯燥,而是辛辛苦苦编完几百行的代码,运行,“Runtime Error “xxx””。
2015-04-05 09:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-443143-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.429477 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved