Board logo

标题: vbs 如何返回文本内某字符出现的次数? [打印本页]

作者: huzixuan     时间: 2007-4-30 03:12    标题: vbs 如何返回文本内某字符出现的次数?

test.txt 文本里有
12345671234567
12345
如何统计 "1" 出现过几次?

已经搜索过论坛,很赞赏兄们用 bat 完成的代码. 但不知用 vbs 如何完成

[ Last edited by huzixuan on 2007-4-30 at 03:13 AM ]
作者: heicai     时间: 2007-4-30 03:14
我的水平来看,用bat貌似更容易些。
作者: huzixuan     时间: 2007-4-30 03:20
缺陷就是 效率可能有些低 而且有些特殊字符很难处理
作者: jmz573515     时间: 2007-4-30 03:31

set fso=createobject("scripting.filesystemobject")
set file=fso.opentextfile("test.txt",1)
a=file.readall
file.close
msgbox tongji(a,"1")
function tongji(a,b)
t=0:tongji=-1
do
t=instr(t+1,a,b)
tongji=tongji+1
loop until t=0
end function

作者: huzixuan     时间: 2007-4-30 03:43
我总是不明白 function 是用来做什么的.
作者: jmz573515     时间: 2007-4-30 04:37
function就是自己写一个函数,我写的这个函数用法是tongji("内容","要查找的内容")这个形式的。希望你能明白,同时希望采纳进百度里的回答... 哈哈

[ Last edited by jmz573515 on 2007-4-29 at 03:38 PM ]
作者: zhoushijay     时间: 2007-4-30 05:18
tongji =通缉,呵呵
我有点看懂了,不过好像脚本中有错误的吧
function tongji(a,b)
t=0:tongji=-1
do
t=instr(t+1,a,b)
tongji=tongji+1
loop until t=0
end function
如果t=instr(t+1,a,b)找不到
tongji=tongji+1也会执行。
作者: jmz573515     时间: 2007-4-30 05:55
哈,所以没有的时候就是0次了
作者: huzixuan     时间: 2007-4-30 06:01
兄 原来就是 百度 的那位 "VBS神秘人" "VBS问题终结者" 吗!!
作者: zhoushijay     时间: 2007-4-30 06:07
就这个地方不懂,如果字符没找到,但是tongji=tongji+1仍然执行,那么不是字符没出现它也会累加一次啊
作者: jmz573515     时间: 2007-4-30 06:56
原来我负给它的值是-1而这个循环是一定会执行一次的,不管找到与否(如果没有找到循环一次就退出了,所以得到的就是0
作者: zhoushijay     时间: 2007-4-30 07:17
明白了,谢谢你解答