用vbs實現(xiàn)對文本文件中的項計數(shù)
更新時間:2007年04月01日 00:00:00 作者:
問:
嗨,腳本專家!如何向文本文件的頂部添加行?
-- FT
答:
您好,F(xiàn)T。您知道,在亞瑟·柯南·道爾爵士生涯的某一時刻,他實際上將夏洛克·福爾摩斯寫死了,他認為他已寫完了有關(guān)這個大偵探所有能寫的一切。公眾的疾呼很快改變了他的想法,他迅速地使夏洛克·福爾摩斯起死回生。(按照所有肥皂劇的那種基本情節(jié)主線一路創(chuàng)作下來。)
我們腳本專家對亞瑟·柯南·道爾爵士深感同情。畢竟,我們會周期性地想,“好了,到這里吧;我們已編寫了有關(guān)文本文件所有能編寫的一切。”我們剛有此想法,就立刻收到有關(guān)文本文件的一堆問題,其中包括三個人所問的同一問題:如何向文件文件的頂部添加行?
很簡單,我親愛的華生(啊,我親愛的 FT)。所有您需要做的只是使用類似下面的腳本:
Const ForReading = 1
Const ForWriting = 2
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\Scripts\Test.txt", ForReading)
strContents = objFile.ReadAll
objFile.Close
strFirstLine = "This is the new first line in the text file."
strNewContents = strFirstLine & vbCrLf & strContents
Set objFile = objFSO.OpenTextFile("C:\Scripts\Test.txt", ForWriting)
objFile.WriteLine strNewContents
objFile.Close
注意。很有趣的是,在原本小說中夏洛克·福爾摩斯從沒有說“很簡單,我親愛的華生”。我們不知道為什么他不那么說;他就是不那么說。
好了,現(xiàn)在游戲已經(jīng)開始了,不是嗎?我們首先創(chuàng)建一對常量 - ForReading 和 ForWriting,我們將在處理文本文件時使用這兩個常量。我們創(chuàng)建一個 FileSystemObject 實例,然后使用 OpenTextFile 方法打開文件 C:\Scripts\Test.txt 以讀取以下內(nèi)容:
Set objFile = objFSO.OpenTextFile("C:\Scripts\Test.txt", ForReading)
現(xiàn)在文件已打開,我們使用 ReadAll 方法讀取該文件的全部內(nèi)容并將這些內(nèi)容存儲在稱作 strContents 的變量中。然后我們立即關(guān)閉文件 Test.txt。為什么?是這樣,通過 FileSystemObject 可打開文件進行讀取或?qū)懭?,但不能同時進行這兩種操作。為向文件頂部添加新的一行,我們將必須對該文件進行寫入;這意味著我們必須重新打開它,但這次是為了寫入。
接下來我們需要為該文件構(gòu)造新內(nèi)容。我們不能直接向文本文件的頂部添加行;FileSystemObject 只允許向文本文件的末尾添加新行。因此,我們需要做的是在內(nèi)存中創(chuàng)建一個全新的文件,然后用此新文件替換現(xiàn)有 Test.txt 的內(nèi)容。新文件將由三部分組成:新的第一行;回車-換行;及該文件的現(xiàn)有內(nèi)容。為構(gòu)造此文件,我們首先使用下面的代碼在稱為 strFirstLine 的變量中存儲新的第一行:
strFirstLine = "This is the new first line in the text file."
然后我們使用以下代碼行合并新的第一行、回車-換行(使用 VBScript 常量 vbCrLf)及該文件的現(xiàn)有內(nèi)容(存儲在變量 strContents 中):
strNewContents = strFirstLine & vbCrLf & strContents
現(xiàn)在剩下的工作就是重新打開 Test.txt(這次是為了寫入),然后使用 WriteLine 方法用新文件替換現(xiàn)有內(nèi)容:
Set objFile = objFSO.OpenTextFile("C:\Scripts\Test.txt", ForWriting)
objFile.WriteLine strNewContents
然后我們調(diào)用 Close 方法,就像這樣,大功告成。好了,文件關(guān)閉。嗨,我們只是想要模仿一下夏洛克·福爾摩斯。
說到這,您知道夏洛克·福爾摩斯有一個叫麥克羅夫特的哥哥嗎?這是真的。按照推測麥克羅夫特很有天賦,但卻因為太懶而沒做出什么有趣或有用的事。
嗨,您說這聽起來有點耳熟是何用意?沒關(guān)系;您很可能指的是某個其他的每天編寫腳本的專欄作家。
嗨,腳本專家!如何向文本文件的頂部添加行?
-- FT
答:
您好,F(xiàn)T。您知道,在亞瑟·柯南·道爾爵士生涯的某一時刻,他實際上將夏洛克·福爾摩斯寫死了,他認為他已寫完了有關(guān)這個大偵探所有能寫的一切。公眾的疾呼很快改變了他的想法,他迅速地使夏洛克·福爾摩斯起死回生。(按照所有肥皂劇的那種基本情節(jié)主線一路創(chuàng)作下來。)
我們腳本專家對亞瑟·柯南·道爾爵士深感同情。畢竟,我們會周期性地想,“好了,到這里吧;我們已編寫了有關(guān)文本文件所有能編寫的一切。”我們剛有此想法,就立刻收到有關(guān)文本文件的一堆問題,其中包括三個人所問的同一問題:如何向文件文件的頂部添加行?
很簡單,我親愛的華生(啊,我親愛的 FT)。所有您需要做的只是使用類似下面的腳本:
復制代碼 代碼如下:
Const ForReading = 1
Const ForWriting = 2
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\Scripts\Test.txt", ForReading)
strContents = objFile.ReadAll
objFile.Close
strFirstLine = "This is the new first line in the text file."
strNewContents = strFirstLine & vbCrLf & strContents
Set objFile = objFSO.OpenTextFile("C:\Scripts\Test.txt", ForWriting)
objFile.WriteLine strNewContents
objFile.Close
好了,現(xiàn)在游戲已經(jīng)開始了,不是嗎?我們首先創(chuàng)建一對常量 - ForReading 和 ForWriting,我們將在處理文本文件時使用這兩個常量。我們創(chuàng)建一個 FileSystemObject 實例,然后使用 OpenTextFile 方法打開文件 C:\Scripts\Test.txt 以讀取以下內(nèi)容:
Set objFile = objFSO.OpenTextFile("C:\Scripts\Test.txt", ForReading)
現(xiàn)在文件已打開,我們使用 ReadAll 方法讀取該文件的全部內(nèi)容并將這些內(nèi)容存儲在稱作 strContents 的變量中。然后我們立即關(guān)閉文件 Test.txt。為什么?是這樣,通過 FileSystemObject 可打開文件進行讀取或?qū)懭?,但不能同時進行這兩種操作。為向文件頂部添加新的一行,我們將必須對該文件進行寫入;這意味著我們必須重新打開它,但這次是為了寫入。
接下來我們需要為該文件構(gòu)造新內(nèi)容。我們不能直接向文本文件的頂部添加行;FileSystemObject 只允許向文本文件的末尾添加新行。因此,我們需要做的是在內(nèi)存中創(chuàng)建一個全新的文件,然后用此新文件替換現(xiàn)有 Test.txt 的內(nèi)容。新文件將由三部分組成:新的第一行;回車-換行;及該文件的現(xiàn)有內(nèi)容。為構(gòu)造此文件,我們首先使用下面的代碼在稱為 strFirstLine 的變量中存儲新的第一行:
strFirstLine = "This is the new first line in the text file."
然后我們使用以下代碼行合并新的第一行、回車-換行(使用 VBScript 常量 vbCrLf)及該文件的現(xiàn)有內(nèi)容(存儲在變量 strContents 中):
strNewContents = strFirstLine & vbCrLf & strContents
現(xiàn)在剩下的工作就是重新打開 Test.txt(這次是為了寫入),然后使用 WriteLine 方法用新文件替換現(xiàn)有內(nèi)容:
Set objFile = objFSO.OpenTextFile("C:\Scripts\Test.txt", ForWriting)
objFile.WriteLine strNewContents
然后我們調(diào)用 Close 方法,就像這樣,大功告成。好了,文件關(guān)閉。嗨,我們只是想要模仿一下夏洛克·福爾摩斯。
說到這,您知道夏洛克·福爾摩斯有一個叫麥克羅夫特的哥哥嗎?這是真的。按照推測麥克羅夫特很有天賦,但卻因為太懶而沒做出什么有趣或有用的事。
嗨,您說這聽起來有點耳熟是何用意?沒關(guān)系;您很可能指的是某個其他的每天編寫腳本的專欄作家。
相關(guān)文章
vbs 錯誤捕獲器,用于捕獲內(nèi)部錯誤并進行手工處理
vbs中的錯誤捕獲器,用于捕獲內(nèi)部錯誤并進行手工處理2009-08-08VBS教程:VBscript語句-ExecuteGlobal 語句
VBS教程:VBscript語句-ExecuteGlobal 語句...2006-11-11用VBS實現(xiàn)PHP的md5_file函數(shù)代碼
用VBS實現(xiàn)PHP的md5_file函數(shù)代碼,需要的朋友可以參考下,代碼主要是參考官方的資料。2011-01-01使用 Iisftpdr.vbs 列出FTP虛擬目錄(支持遠程與本地)
這篇文章主要介紹了如何通過 iisftpdr.vbs 列出本地或遠程計算機上的 FTP 虛擬目錄的方法,需要的朋友可以參考下2014-07-07VBS教程:VBScript 語句-Property Let 語句
VBS教程:VBScript 語句-Property Let 語句...2006-11-11使用vbs腳本來監(jiān)控windows服務器上的應用程序(不存在就啟動)
這個vbs代碼主要實現(xiàn)的功能就是運行該程序,就會在進程中出現(xiàn)一個wscript.exe?它會每隔10s掃面一次進程中是否存在notepad.exe這個程序,不存在就啟動。這個啟動程序可能跟進程名不一樣,好比tomcat應用,啟動的是startup.bat,后臺進程名為java.exe2023-06-06VBScript Enun Remote CMD Shell代碼
Enun Remote CMDShell,喜歡玩cmdshell的朋友可以參考下2013-07-07