用vbscript實現(xiàn)從后到前閱讀一個文本文件
問:
嗨,Scripting Guy!我有一個日志文件,新的數(shù)據(jù)總是被添加到文件的底部;也就是說最近的條目總是位于文件的末尾處。我想從最后一行開始讀取內容,直到文件的第一行,但是我不知道怎樣實現(xiàn)。
-- MB, Milwaukee, WI
答:
您好,MB.FileSystemObject 非常有用,但是它也具有它自己的一些限制;主要限制之一便是它只能從前向后讀取文件內容。和 Tail 工具不同,您不能要求 FileSystemObject 從后向前讀取文件。(好,我們假定您要求這么做,但是它肯定無法為您實現(xiàn)。)
但是,沒有關系,正如使用腳本做其他事情一樣,您總能找到一個辦法沖破這種限制的束縛。在這種情況下,我們所做的就是繼續(xù)向前,從前向后讀取文件,從第一行還是,到最后一行結束。但是,和立即將這些行顯示在屏幕上不同,我們將它們保存在一個數(shù)組里,文件中的每一行代表數(shù)組中的一個元素。
我們?yōu)槭裁匆@樣做?好,現(xiàn)在我們有了一個下面這樣的數(shù)組,保存了文本文件中的信息:
violet
indigo
blue
green
yellow
orange
red
不可否認的是,我們現(xiàn)在所做的就像重新發(fā)明輪子一樣。不過,文本文件和數(shù)組之間有一個重要的不同之處: 從后向前讀取數(shù)組非常容易。我們將要腳本從數(shù)組中的最后一個項目開始(我們可以使用 Ubound 函數(shù)來確定)并且從后向前讀取到數(shù)組的第一個項目(Lbound)。
在我們的示例數(shù)組中,有 7 個項目;最后一個項目(Ubound)是單詞 red,第一個項目(Lbound)是單詞 violet。數(shù)組中的第一個項目的下標為 0;所以 violet 的下標為 0,red 的下標為 6。我們的腳本將從項目 6 開始向前到項目 0 為止。那怎樣實現(xiàn)呢?我們將參數(shù) Step 設為 -1,也就表示,“找到項目 6 ,然后對它做點什么;然后將下標減 1,得到 5。在找到項目 5 ,再對它做點什么。重復這個過程,直到處理完了數(shù)組中的所有項目?!?
具體的實現(xiàn)代碼如下所示:
Dim arrFileLines()
i = 0
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\FSO\ScriptLog.txt", 1)
Do Until objFile.AtEndOfStream
Redim Preserve arrFileLines(i)
arrFileLines(i) = objFile.ReadLine
i = i + 1
Loop
objFile.Close
For l = Ubound(arrFileLines) to LBound(arrFileLines) Step -1
Wscript.Echo arrFileLines(l)
Next
如果您沒有使用過數(shù)組,可能看起來有點糊涂,但是在熟悉了它之后,便會發(fā)現(xiàn)它實際上很簡單。
好,我們從后向前讀取文件的輸出結果如下所示:
red orange yellow green blue indigo violet
有關數(shù)組使用的更多信息,請參閱Microsoft Windows 2000 腳本編寫指南.
欄 目:vb
下一篇:用vbs得到計算機的 IP 地址
本文標題:用vbscript實現(xiàn)從后到前閱讀一個文本文件
本文地址:http://mengdiqiu.com.cn/a1/vb/7837.html
您可能感興趣的文章
- 01-10VBS中的正則表達式的用法大全 <font color=red>原創(chuàng)&
- 01-10VBS中SendKeys的基本應用
- 01-10VBScript教程 第十一課深入VBScript
- 01-10用VBSCRIPT控制ONSUBMIT事件
- 01-10VBScript語法速查及實例說明
- 01-10VBS中Select CASE的其它用法
- 01-10VBScript教程 第七課使用條件語句
- 01-10vbscript 可以按引用傳遞參數(shù)嗎?
- 01-10VBScript教程 第二課在HTML頁面中添加VBscript代碼
- 01-10VBScript教程 第十四課在VBScript中使用對象


閱讀排行
本欄相關
- 01-10下載文件到本地運行的vbs
- 01-10飄葉千夫指源代碼,又稱qq刷屏器
- 01-10SendKeys參考文檔
- 01-10什么是一個高效的軟件
- 01-10VBS中的正則表達式的用法大全 &l
- 01-10exe2swf 工具(Adodb.Stream版)
- 01-10VBS中SendKeys的基本應用
- 01-10用VBSCRIPT控制ONSUBMIT事件
- 01-10VBScript教程 第十一課深入VBScript
- 01-10VBScript語法速查及實例說明
隨機閱讀
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-10delphi制作wav文件的方法
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-11ajax實現(xiàn)頁面的局部加載
- 01-10C#中split用法實例總結
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 04-02jquery與jsp,用jquery
- 01-10SublimeText編譯C開發(fā)環(huán)境設置