文本文档批量查找VBS几句搞定

来源 :电脑爱好者 | 被引量 : 0次 | 上传用户:gsqj123465
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  前几期我们讲到VBS脚本中,语句(statement)是构成语句(sentence)也叫句子的一部分。但请注意仔细辨析前后两个“语句”(英文单词可是不同的)是完全不同的概念。语句(statement)共有21个,有声明语句、判断语句、循环语句、分支选择语句、赋值语句、初始化语句等。下面介绍For...Next循环语句的用法。
  
  一、查找指定关键词组合的句子并输出到文件
  
  前几期介绍了批量替换文本文档中指定的内容来勘误错别字,这个范例有个缺陷,就是无法识别替换关键词与其前后字所组成的词语,比如:将“小边”替换成“小编”,假设有句子“走进狭小边缘地带”,替换后变成了“走进狭小编缘地带”,岂不弄巧成拙?如果事先把所有和“小边”组合的句子列出来,然后找出适宜的关键词来替换,这样定能事半功倍。本期范例批量查找文本文档中指定关键词组合的句子,并输出到文件名添加后缀“_Log”的文本文档中,以便筛选出恰当的关键词进行批量替换。
  Const ForReading = 1, ForWriting = 2, ForAppending = 8
  Msgbox"单击“取消”或按“Esc”键结束选择文件。", vbInformation, "操作提示"
  Set WshShell = WScript.CreateObject("WScript.Shell")
  strMyDocuments = WshShell.SpecialFolders("MyDocuments")
  Set objDialog = CreateObject("UserAccounts.CommonDialog")
  objDialog.Filter = "文本文档(*.txt)|*.txt|所有文件|*.*"
  objDialog.InitialDir = strMyDocuments
  Do
  intResult = objDialog.ShowOpen
  If intResult <> 0 Then strSource = strSource & _
   objDialog.FileName & vbCrLf
  Loop Until intResult = 0
  If strSource = "" Then
   MsgBox "您没有选择任何文件,程序已结束。", vbInformation, "消息"
   Wscript.Quit
  End If
  strFind = InputBox("请输入一个用于查找的关键词,可以是字母、符号、" & _
  "单词、汉字、词、词组、成语、短语或者句子等等,然后单击" & _
  "“确定”。", "关键词")
  If strFind = "" Then
   MsgBox "您没有输入有效的关键词,程序已结束。", vbInformation, "消息"
   Wscript.Quit
  End If
  arrFiles = Split(strSource, vbCrLf)
  Set objFso = CreateObject("Scripting.FileSystemObject")
  For I = 0 To Ubound(arrFiles) - 1
  Set objFile = objFso.OpenTextFile(arrFiles(I), ForReading, False)
  strFindText = "" : intLin = 0
  Do While objFile.AtEndOfStream <> True
  strText = objFile.ReadLine
  Do
  intLin = intLin + 1
  intPos = InStr(intPos + 1, strText, strFind)
  If intPos <> 0 Then
  strFindText = strFindText & "L: " & intLin & " N: " & intPos & " : "
  If 0 >= intPos - 2 Then intStart = 1 Else intStart = intPos - 2
  strTemp = Mid(strText, intStart, Len(strFind) + 4)
  For J = 1 To Len(strTemp)
  If Mid(strTemp, J, 1) >= " " Then
   strFindText = strFindText & Mid(strTemp, J, 1)
  End If
  Next
  strFindText = strFindText & vbCrLf
  End If
  Loop Until intPos = 0
  Loop
  objFile.Close
  strLogFile = objFso.GetFile(arrFiles(I)).Path
  strLogFile = Left(strLogFile, Len(strLogFile) - _
   Len(objFso.GetExtensionName(strLogFile)) - 1) & "_Log.txt"
  Set objFile = objFso.OpenTextFile(strLogFile, ForWriting, True)
  objFile.Write strFindText
  objFile.Close
  Next
  MsgBox "所选文件处理完毕,请查看当前文件夹中的记录文件。", vbInformation, "消息"
  
  二、通透理解For...Next循环语句
  
  1.For...Next循环语句
  For...Next语句也是最常用的语句之一,用于循环执行指定次数的一组语句从而获得预期的计算结果。可以通俗地这样理解:假定从一个数开始数数,每数一个数就要做一件或多件事,一直数到最后一个数为止。在数数过程中,可以按一个固定的数相加(递增)或相减(递减)来跨步数数,比如:1、3、5、7,每次固定相加2,这个固定的数称作“步长(step)”,默认值为1。如果步长为正数表示递增,负数表示递减。开始数的那个数称作“初值”,数到最后那个数称作“终值”,初值和终值可以是正整数、零或负整数。做一件或多件事即执行一条或多条语句(sentence)。
  
  2.For...Next语句的用法
  For 计数器变量名 = 初值 To 终值 [Step 步长]
  [语句]
  [Exit For]
  [语句]
  Next
  当For...Next循环启动时,首先将“初值”赋给“计数器变量”,接着测试“计数器变量”与“终值”,如果计数器变量超出终值,即递增大于或者递减小于终值,则结束循环;反之执行循环内的所有语句(sentence),其中当遇到经常由If...Then语句判断结果为真值执行Exit For语句即退出循环。然后将“步长”值加到计数器变量中(正数为相加,负数为相减),再次测试“计数器变量”与“终值”,继续下一次循环,一直到计数器变量超出终值时结束循环。同样,For...Next循环语句可以多重嵌套循环,但是每个循环中的“计数器变量名”不能相同。
  
  3.下期预告:介绍For Each...Next语句和用法。
其他文献
“北国风光,千里冰封,万里雪飘……”每次读到这蔚然壮观的诗句的时候,脑海里就出现了一望无际大雪纷飞的场景。是啊!在萧条的冬天唯一迷人的景致就是雪景了,喜欢拍摄的朋友是不会错过冬天拍摄雪景的机会的。一棵挺拔在风雪中的松树,蓝天掩映下的被白雪覆盖的山峰,一道道在大雪中若隐若现的栅栏,以及满天飘落的雪花都是摄影爱好者眼中最美的风景。
期刊
在Windows中,按Win+R组合键,会弹出运行窗口。在此窗口中可以输入如Msconfig,Regedit等命令,就能快速调用相关组件或程序。但在运行窗口中只能直接运行一些系统命令,要是想打开一些常用程序却不可以。这是怎么回事呢?这主要是没有加上环境变量所致,解决方法很简单:右击“我的电脑”,选择“属性”,在“高级”选项卡下,就能看到“环境变量”按钮,在这里可以对系统变量进行设置(见图1)。
期刊
最近,在北京开连锁网吧的王老板被国务院新刚颁发的《娱乐场所管理条例》吓了一跳。按照该条例规定,从3月1日起,所有娱乐场所在每日凌晨2时至上午8时将不得营业。2月16日,文化部文化市场司副司长张新建针对条例明确指出,网吧并不在该条例管理范围之内,因此不受营业时间限制。“北京不久前才取消网吧零点以后不得营业的禁令,现在看来,政府给网吧产业松绑的态度确实很明确。开网吧有前途了。”这是采访中不少网吧业主对
期刊
“又没电了!”正在和MM通话的店小二突然大叫一声,气愤得差点把新买的那台智能手机扔出去。还好掌柜的出手阻止,否则这一个月工资换来的高档货就会以零件形式出现在地板上了。    菜谱:延长智能手机待机时间  主料:Windows Mobile 2003SE(SmartPhone)  ★代表机型:多普达 565/575/585、MOTO MPX220    手机电池容量固然是衡量手机可用时间的一个重要因
期刊
窗口最小化之后带来的不便从来就没有停止过,拥挤的任务栏让我们根本无从分辨最小化按钮上的标题文字,但如果你可以把窗口最小化到桌面上,那问题就很快解决了。  安装miniMIZE后,在系统托盘中就会出现一个蓝色的方块图标,此时试着将任意窗口最小化,桌面上就会出现该窗口的缩略图(见图),缩略图中包含了此窗口的图标,因此很容易辨认,双击缩略图就能打开最小化的窗口。右击miniMIZE的系统托盘图标,选择“
期刊
电脑用过一段时间后,系统中总会充满了大量软件。这些软件在系统中塞入了很多信息和文件,即便将其卸载也不能完全清除它们的痕迹。而那些还保留在系统中的软件也因为又多又杂,就连我们自己都搞不清究竟有多少程序,每个程序是干什么的,又是什么时候安装的。这样下去,系统会变得混乱而缓慢,我们使用电脑的乐趣也变成了煎熬。其实,只要有下面介绍的这两款软件的辅助,以上问题即可迎刃而解。      一、程序安装和卸载全程
期刊
如果那个女孩再一次从我面前经过,我决不会让她擦肩而过,因为她就是我的NO.1。    世界上最远的距离    陈然走进书店的时候,没有看柜台就感觉到了他的存在。她在新书架上草草翻了翻,都是些泛滥的爱情书,于是她从外国文学柜里拿了一本马尔克斯的小说,他接过书,迟疑了一下,陈然明白他的意思:“最后一个号是1……”他笑了:“这样是打不出来的,你的名字?”“陈然,”他敲着键盘,又笑了:“居然真是NO.1。
期刊
功效类型:洁肤滋养、保湿补水、消炎镇定、舒缓肌肤。
期刊
也许你的系统中安装了很多软件,开始菜单已经有几公里长了,想打开一个软件需要花费不少时间。也许你经常需要重复打开文件,而“开始菜单→文档”中却只有15个记录,实在供不应求。Find And Run Robot是专门帮你解决这些问题的一款小软件。    Find And Run Robot小档案  软件版本:1.07 软件大小:1.52MB  软件性质:免费软件 适用平台:Windows 9x/200
期刊
服饰  又到金秋时节,你找到了本季最流行最爱的那件时尚单品了吗?  挚爱外套  轻熟皮衣 Emma Watson ★★★★★  印花西装 Jessica Alba ★★★★☆  斜纹花呢 Anne Hathaway ★★★★  复古牛仔 Emma Roberts ★★★☆  针织开衫 Nicole Kidman ★★☆  嬉皮夹克 Cheryl Cole ★★  2012秋
期刊