使用VBS訪問外部文本文件一些方法和腳本實例代碼

字號:


    處理文件用到的常量有: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)一點,打開文件以后一定要記得關(guān)閉,以免發(fā)生數(shù)據(jù)錯誤,丟失數(shù)據(jù)。