處理文件用到的常量有:ForReading = 1 ,F(xiàn)orWriting=2,ForAppending=8,用于的操作分別是讀/寫和追加,都要在使用之前用VBS Const來聲明。常用于處理文本文件的方法有:Read(var)—讀var個字符,ReadLine—讀一行,ReadAll—讀整個文件內(nèi)容,SkipLine—跳過本行指向下一行,Write(var)—把字符串var寫入文件,WriteLine(var)—把字符串var和換行符寫入文件,WriteBlankLines(n)—寫入n個換行符。
下面給出幾個利用VBScript訪問外部文件的例子:
1.創(chuàng)建一個新的文本文件,如果文件已經(jīng)存在則報告錯誤:
代碼如下:
Rem 在當(dāng)前盤根目錄下創(chuàng)建"測試.txt"并寫入一個字符串
VBS dim fso,file,filename
VBS filename="\測試.txt"
VBS Const ForWriting=2
VBS Set fso=CreateObject("Scripting.FileSystemObject")
If fso.FileExists(filename)=-1
VBSCall Call MessageBox("發(fā)現(xiàn)錯誤!!!文件已經(jīng)存在!!!")
Goto over
EndIf
VBS Set file=fso.CreateTextFile(filename,Ture)
VBS file.WriteLine("文件第一行,這是一個測試文件")
VBS file.Close
VBSCall Call MessageBox("測試文件創(chuàng)建成功!!!")
Rem over
EndScript
2.強(qiáng)行寫入文件覆蓋原有內(nèi)容:
代碼如下:
Rem 在當(dāng)前盤根目錄下創(chuàng)建"測試.txt"并寫入一個字符串
VBS dim fso,file,filename
VBS filename="\測試.txt"
VBS Const ForWriting=2
VBS Set fso=CreateObject("Scripting.FileSystemObject")
If fso.FileExists(filename)=-1
VBSCall Call MessageBox("發(fā)現(xiàn)錯誤!!!文件已經(jīng)存在!!!")
Goto over
EndIf
VBS Set file=fso.CreateTextFile(filename,Ture)
VBS file.WriteLine("文件第一行,這是一個測試文件")
VBS file.Close
VBSCall Call MessageBox("測試文件創(chuàng)建成功!!!")
Rem over
EndScript
3.往文件尾部追加內(nèi)容:
代碼如下:
Rem 往當(dāng)前盤根目錄下的文件"測試.txt"末尾追加一個字符串
VBS dim fso,file,filename
VBS filename="\測試.txt"
VBS Const ForAppending=8
VBS Set fso=CreateObject("Scripting.FileSystemObject")
If fso.FileExists(filename)=0
VBSCall Call MessageBox("發(fā)現(xiàn)錯誤!!!文件不存在!!!")
Goto over
EndIf
VBS Set file=fso.OpenTextFile(filename,ForAppending)
VBS file.WriteLine("測試追加字符串到文件末尾")
VBS file.Close
VBSCall Call MessageBox("追加字符串到文件成功!!!")
Rem over
EndScript
4.讀取指定文件一行
代碼如下:
Rem 從當(dāng)前盤根目錄下的文件"測試.txt"讀一行
VBS dim fso,file,filename,text
VBS filename="\測試.txt"
VBS Const ForReading=1
VBS Set fso=CreateObject("Scripting.FileSystemObject")
If fso.FileExists(filename)=0
VBSCall Call MessageBox("發(fā)現(xiàn)錯誤!!!文件不存在!!!")
Goto over
EndIf
VBS Set file=fso.OpenTextFile(filename,ForReading)
VBS text=file.ReadLine
VBS file.Close
VBS text="從文件"&filename&"讀取行成功!讀到的字符串為:"&text
VBSCall Call MessageBox(text)
Rem over
EndScript
5.從指定文件行讀取2個字符
代碼如下:
Rem 從當(dāng)前盤根目錄下的文件"測試.txt"讀取2個字符
VBS dim fso,file,filename,text
VBS filename="\測試.txt"
VBS Const ForReading=1
VBS Set fso=CreateObject("Scripting.FileSystemObject")
If fso.FileExists(filename)=0
VBSCall Call MessageBox("發(fā)現(xiàn)錯誤!!!文件不存在!!!")
Goto over
EndIf
VBS Set file=fso.OpenTextFile(filename,ForReading)
VBS text=file.Read(2)
VBS file.Close
VBS text="從文件"&filename&"讀取2個字符成功!讀到的字符為:"&text
VBSCall Call MessageBox(text)
Rem over
EndScript
6. ReadAll讀取整個文件內(nèi)容,大文件太占資源,不建議使用
//使用方法和ReadLine近似
7.SkipLine跳過當(dāng)前行
//使用方法是file.SkipLine,僅用于只讀屬性打開的文件
8.測試文件行結(jié)束/文件結(jié)束
a.測試行結(jié)束
判斷語句
If file.AtEndOfLine=-1
...
EndIf
//表達(dá)式為真的時候當(dāng)前指針處于行末
b.測試文件結(jié)束
判斷語句
If file.AtEndOfStream=-1
...
EndIf
//表達(dá)式為真的時候當(dāng)前指針處于文件末
9.其他用于文件的函數(shù)或者叫方法功能有
a.file.Column 返回當(dāng)前列號
b.file.Line 返回當(dāng)前行號
c.file.FileExists(filename) 判斷指定文件是否存在
最后強(qiáng)調(diào)一點(diǎn),打開文件以后一定要記得關(guān)閉,以免發(fā)生數(shù)據(jù)錯誤,丟失數(shù)據(jù)。