用vbscript實(shí)現(xiàn)在文本文件中搜索兩個(gè)項(xiàng)
問(wèn):
您好,腳本專(zhuān)家! 您曾經(jīng)介紹過(guò)如何在文本文件中搜索單個(gè)詞或短語(yǔ),但如何在文本文件中搜索兩個(gè)短語(yǔ)呢? 我想知道文件中是否包含 Windows 2000 或 Windows XP。
-- JR
答:
您好,JR。您知道,讓腳本專(zhuān)家去做一件事情就已經(jīng)夠困難的了;可見(jiàn)讓他們?nèi)プ鰞杉虑閹缀跏遣豢赡艿摹?nbsp;但我們要告訴您的是: 只要您不介意我們向您介紹一種簡(jiǎn)單的方法來(lái)在文本文件中搜索多個(gè)項(xiàng),我們就會(huì)向您介紹如何在文本文件中搜索多個(gè)項(xiàng)。
注意。 為什么稱(chēng)之為“簡(jiǎn)單的方法”呢? 我們不打算費(fèi)神設(shè)置數(shù)組或其他某個(gè)復(fù)雜的框架來(lái)進(jìn)行多個(gè)搜索。 相反,我們打算在第一次搜索文件時(shí)搜索第一個(gè)術(shù)語(yǔ),而后在第二次搜索文件時(shí)搜索第二個(gè)術(shù)語(yǔ)。 這種方法雖不是很好,但卻很簡(jiǎn)單,且很有效。
以下是一小段簡(jiǎn)單的腳本,它可告訴您是否可在文本文件 C:\Scripts\Text.txt 中找到術(shù)語(yǔ) Windows 2000 或 Windows XP:
Const ForReading = 1
blnFound = False
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\Scripts\Test.txt", ForReading)
strContents = objFile.ReadAll
objFile.Close
If InStr(strContents, "Windows 2000") Then
blnFound = True
End If
If InStr(strContents, "Windows XP") Then
blnFound = True
End If
If blnFound Then
Wscript.Echo "Either Windows 2000 or Windows XP appears in this file."
Else
Wscript.Echo "Neither Windows 2000 nor Windows XP appears in this file."
End If
接下來(lái)我們打開(kāi)文件 C:\Scripts\Test.txt 進(jìn)行讀取,然后使用 ReadAll 方法將該文件的所有內(nèi)容讀入名為 strContents 的變量中;實(shí)際上我們將對(duì)存儲(chǔ)于內(nèi)存中的此文件“副本”進(jìn)行搜索。 由于我們不再需要此物理文件,因此我們調(diào)用 Close 方法將該文件關(guān)閉。
此時(shí),我們可進(jìn)行第一次搜索了。 下面這行代碼使用 InStr 函數(shù)來(lái)確定是否可在變量 strContents 中的某個(gè)位置找到字符串 Windows 2000:
If InStr(strContents, "Windows 2000") Then
如果 InStr 為 True,則我們將 blnFound 的值設(shè)置為 True;如果 InStr 為 False,我們將直接跳至下一個(gè)搜索。 在下一個(gè)搜索中,我們重復(fù)此過(guò)程,這次將搜索字符串 Windows XP:
If InStr(strContents, "Windows XP") Then
如果找到了 Windows 2000 或 Windows XP(或二者均找到了),則 blnFound 將為 True;如果兩者均未找到,則 blnFound 將仍為 False。 在腳本的末尾,我們檢查 blnFound 的值,并指出是否在文件中找到了一個(gè)或多個(gè)搜索短語(yǔ)。
但如果您想知道文件中是否同時(shí)包含這兩個(gè)搜索短語(yǔ),該怎么辦呢? 我們將不再對(duì)此做詳細(xì)闡述,但下面的腳本可告訴您是否可在文件中同時(shí)找到兩個(gè)目標(biāo)短語(yǔ):
Const ForReading = 1
intFound = 0
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\Scripts\Test.txt", ForReading)
strContents = objFile.ReadAll
objFile.Close
If InStr(strContents, "Windows 2000") Then
intFound = intFound + 1
End If
If InStr(strContents, "Windows XP") Then
intFound = intFound + 1
End If
If intFound = 2 Then
Wscript.Echo "The text file contains both Windows 2000 and Windows XP."
Else
Wscript.Echo "The text file does not contain both Windows 2000 and Windows XP."
End If
是的,該腳本的確與前面的腳本很相似。 最大的不同之處在于我們沒(méi)有使用 True-False 變量;而是使用了一個(gè)名為 intFound 的計(jì)數(shù)器變量。 該腳本首先搜索 Windows 2000;如果找到了該短語(yǔ),則會(huì)將 intFound 加 1。(由于 intFound 開(kāi)始時(shí)為 0,這就意味著此時(shí) intFound 將等于 1。)
然后該腳本將搜索 Windows XP,如果找到了該短語(yǔ),會(huì)將 intFound 的值加 1。最終結(jié)果如何呢? 在腳本末尾,只有同時(shí)找到了兩個(gè)目標(biāo)短語(yǔ),intFound 才會(huì)等于 2;如果 intFound 等于 0 或 1,則表示一個(gè)都沒(méi)找到或只找到了一個(gè)目標(biāo)短語(yǔ)。 此時(shí)所要做的就是回顯搜索結(jié)果。
上一篇:用vbscript實(shí)現(xiàn)在消息框中顯示一個(gè)超鏈接
欄 目:vb
本文標(biāo)題:用vbscript實(shí)現(xiàn)在文本文件中搜索兩個(gè)項(xiàng)
本文地址:http://www.jygsgssxh.com/a1/vb/7854.html
您可能感興趣的文章
- 01-10VBS中的正則表達(dá)式的用法大全 <font color=red>原創(chuàng)&
- 01-10VBS中SendKeys的基本應(yīng)用
- 01-10VBScript教程 第十一課深入VBScript
- 01-10用VBSCRIPT控制ONSUBMIT事件
- 01-10VBScript語(yǔ)法速查及實(shí)例說(shuō)明
- 01-10VBS中Select CASE的其它用法
- 01-10VBScript教程 第七課使用條件語(yǔ)句
- 01-10vbscript 可以按引用傳遞參數(shù)嗎?
- 01-10VBScript教程 第二課在HTML頁(yè)面中添加VBscript代碼
- 01-10VBScript教程 第十四課在VBScript中使用對(duì)象


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹(shù)的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問(wèn)題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 01-10下載文件到本地運(yùn)行的vbs
- 01-10飄葉千夫指源代碼,又稱(chēng)qq刷屏器
- 01-10SendKeys參考文檔
- 01-10什么是一個(gè)高效的軟件
- 01-10VBS中的正則表達(dá)式的用法大全 &l
- 01-10exe2swf 工具(Adodb.Stream版)
- 01-10VBS中SendKeys的基本應(yīng)用
- 01-10用VBSCRIPT控制ONSUBMIT事件
- 01-10VBScript教程 第十一課深入VBScript
- 01-10VBScript語(yǔ)法速查及實(shí)例說(shuō)明
隨機(jī)閱讀
- 01-10delphi制作wav文件的方法
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 04-02jquery與jsp,用jquery
- 01-11Mac OSX 打開(kāi)原生自帶讀寫(xiě)NTFS功能(圖文
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 01-10C#中split用法實(shí)例總結(jié)
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 01-10SublimeText編譯C開(kāi)發(fā)環(huán)境設(shè)置
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子


