濮阳杆衣贸易有限公司

主頁 > 知識庫 > 用vbscript實現(xiàn)在文本文件中搜索兩個項

用vbscript實現(xiàn)在文本文件中搜索兩個項

熱門標簽:百度地圖標注是什么意思 外呼系統(tǒng)telrobot 外呼線路中繼線是什么 怎么看地圖標注 拉薩外呼系統(tǒng)業(yè)務(wù) 深圳外呼系統(tǒng)收費 外呼系統(tǒng)免費招代理 合肥高德地圖標注 廣州ai電銷機器人一般多少錢
問:
您好,腳本專家! 您曾經(jīng)介紹過如何在文本文件中搜索單個詞或短語,但如何在文本文件中搜索兩個短語呢? 我想知道文件中是否包含 Windows 2000 或 Windows XP。
-- JR
答:
您好,JR。您知道,讓腳本專家去做一件事情就已經(jīng)夠困難的了;可見讓他們?nèi)プ鰞杉虑閹缀跏遣豢赡艿摹?nbsp;但我們要告訴您的是: 只要您不介意我們向您介紹一種簡單的方法來在文本文件中搜索多個項,我們就會向您介紹如何在文本文件中搜索多個項。
注意。 為什么稱之為“簡單的方法”呢? 我們不打算費神設(shè)置數(shù)組或其他某個復(fù)雜的框架來進行多個搜索。 相反,我們打算在第一次搜索文件時搜索第一個術(shù)語,而后在第二次搜索文件時搜索第二個術(shù)語。 這種方法雖不是很好,但卻很簡單,且很有效。
以下是一小段簡單的腳本,它可告訴您是否可在文本文件 C:\Scripts\Text.txt 中找到術(shù)語 Windows 2000 或 Windows XP:
復(fù)制代碼 代碼如下:

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 
此腳本開頭定義了一個名為 ForReading 的常量,并將其值設(shè)定為 1;打開文本文件時我們將用到它。 我們還創(chuàng)建了一個名為 blnFound 的變量,并將其值指定為 False;我們將使用此變量來跟蹤是否在文件中找到了任意一個搜索術(shù)語。 如果至少找到了一個術(shù)語,我們就將 blnFound 的值改為 True;否則,該值將保持 False 不變。
接下來我們打開文件 C:\Scripts\Test.txt 進行讀取,然后使用 ReadAll 方法將該文件的所有內(nèi)容讀入名為 strContents 的變量中;實際上我們將對存儲于內(nèi)存中的此文件“副本”進行搜索。 由于我們不再需要此物理文件,因此我們調(diào)用 Close 方法將該文件關(guān)閉。
此時,我們可進行第一次搜索了。 下面這行代碼使用 InStr 函數(shù)來確定是否可在變量 strContents 中的某個位置找到字符串 Windows 2000:
If InStr(strContents, "Windows 2000") Then
如果 InStr 為 True,則我們將 blnFound 的值設(shè)置為 True;如果 InStr 為 False,我們將直接跳至下一個搜索。 在下一個搜索中,我們重復(fù)此過程,這次將搜索字符串 Windows XP:
If InStr(strContents, "Windows XP") Then
如果找到了 Windows 2000 或 Windows XP(或二者均找到了),則 blnFound 將為 True;如果兩者均未找到,則 blnFound 將仍為 False。 在腳本的末尾,我們檢查 blnFound 的值,并指出是否在文件中找到了一個或多個搜索短語。
但如果您想知道文件中是否同時包含這兩個搜索短語,該怎么辦呢? 我們將不再對此做詳細闡述,但下面的腳本可告訴您是否可在文件中同時找到兩個目標短語:
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
是的,該腳本的確與前面的腳本很相似。 最大的不同之處在于我們沒有使用 True-False 變量;而是使用了一個名為 intFound 的計數(shù)器變量。 該腳本首先搜索 Windows 2000;如果找到了該短語,則會將 intFound 加 1。(由于 intFound 開始時為 0,這就意味著此時 intFound 將等于 1。) 
然后該腳本將搜索 Windows XP,如果找到了該短語,會將 intFound 的值加 1。最終結(jié)果如何呢? 在腳本末尾,只有同時找到了兩個目標短語,intFound 才會等于 2;如果 intFound 等于 0 或 1,則表示一個都沒找到或只找到了一個目標短語。 此時所要做的就是回顯搜索結(jié)果。

標簽:周口 漳州 玉林 六安 延安 嘉興 臺灣 廣安

巨人網(wǎng)絡(luò)通訊聲明:本文標題《用vbscript實現(xiàn)在文本文件中搜索兩個項》,本文關(guān)鍵詞  用,vbscript,實,現(xiàn)在,文本,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《用vbscript實現(xiàn)在文本文件中搜索兩個項》相關(guān)的同類信息!
  • 本頁收集關(guān)于用vbscript實現(xiàn)在文本文件中搜索兩個項的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    苏尼特左旗| 土默特左旗| 汶上县| 徐州市| 萝北县| 大安市| 林周县| 咸宁市| 时尚| 商水县| 兴隆县| 洞口县| 涿鹿县| 桐乡市| 延川县| 双辽市| 武陟县| 南充市| 湄潭县| 永寿县| 商都县| 翼城县| 金寨县| 遂川县| 临泉县| 东乡县| 杭锦后旗| 平遥县| 库车县| 独山县| 汤阴县| 深泽县| 东安县| 河北区| 新乡县| 宜良县| 铜陵市| 天峨县| 洛隆县| 玉田县| 濮阳市|