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