VBS基礎(chǔ)篇 - vbscript TextStream對(duì)象
TextStream對(duì)象是用于訪問(wèn)文本文件的對(duì)象,它是FileSystemObject一個(gè)獨(dú)立的附屬對(duì)象,但在使用TextStream對(duì)象時(shí),我們?nèi)砸柚鶩ileSystemObject 對(duì)象或其附屬對(duì)象來(lái)創(chuàng)建一個(gè) TextStream 對(duì)象并訪問(wèn)磁盤(pán)文件的內(nèi)容。可以通過(guò)FileSystemObject 對(duì)象的CreateTextFile()及OpenTextFile(),來(lái)獲取TextStream的對(duì)象句柄。
下面我們來(lái)具體的看看TextStream 對(duì)象的方法及屬性的使用
TextStream對(duì)象的方法
| 方法 | 說(shuō)明 |
| Close() | 關(guān)閉一個(gè)打開(kāi)的文件 |
| Read(numchars) | 從文件中讀出 numchars 個(gè)字符 |
| ReadAll() | 作為單個(gè)字符串讀出整個(gè)文件 |
| ReadLine() | 作為一個(gè)字符串從文件中讀出一行(直到回車(chē)符和換行) |
| Skip(numchars) | 當(dāng)從文件讀出時(shí)忽略 numchars 個(gè)字符 |
| SkipLine() | 當(dāng)從文件讀出時(shí)忽略下一行 |
| Write(string) | 向文件寫(xiě)入字符串 string |
| WriteLine(string) | 向文件寫(xiě)入字符串 string(可選)和換行符 |
| WriteBlankLines(n) | 向文件寫(xiě)入 n 個(gè)換行符 |
Close、Write、WriteLine及WriteBlankLines的使用
方法名:Close()
說(shuō)明:關(guān)閉正在打開(kāi)的文件
方法名:WriteLine(string)
說(shuō)明:向文件寫(xiě)入字符串 string(可選)和換行符。
示例:
Dim strPath,strText
strPath = "C:\testing.txt"
strText = "This is Test !hello word !"
'調(diào)用函數(shù)
Call CreateFile(strPath,strText)
Sub CreateFile(strPath,strText)
Dim objFso,objStream
'創(chuàng)建FileSystemObject對(duì)象
Set objFso = CreateObject("Scripting.FileSystemObject")
'使用CreateTextFile(),來(lái)返回一個(gè)TextStream對(duì)象句柄
Set objStream = objFso.CreateTextFile(strPath,True)
'三個(gè)Write的意思為:在文本中寫(xiě)入字符、寫(xiě)入帶換行符的字符、寫(xiě)入3個(gè)換行符
objStream.Write(strText)
objStream.WriteLine(strText)
objStream. WriteBlankLines 3
'關(guān)閉TextStream對(duì)象
objStream.Close
End Sub
Read、ReadAll及ReadLine的使用
方法名:Read(numchars)
說(shuō)明:從 TextStream文件中讀入指定數(shù)目的字符并返回結(jié)果字符串。
方法名:ReadAll()
說(shuō)明:讀入全部 TextStream文件并返回結(jié)果字符串。
方法名:ReadLine()
說(shuō)明:從 TextStream文件中讀入一整行字符(直到下一行,但不包括下一行字符),并返回字符串
示例:
Call CreateFile("c:\test.txt", "This is Test !" & vbCrLf & "hello word !")
Sub CreateFile(strPath,strText)
Dim objFso,objStream
'創(chuàng)建FileSystemObject對(duì)象
Set objFso = CreateObject("Scripting.FileSystemObject")
'使用FileSystemObject對(duì)象的CreateTextFile(),來(lái)返回一個(gè)TextStream對(duì)象句柄
Set objStream = objFso.CreateTextFile(strPath,True)
'寫(xiě)入字符
objStream.WriteLine(strText)
'讀取字符串分別是:讀取整行、讀取所有、讀取指定數(shù)目的字符
Msgbox (objStream.ReadLine)
Set objStream = objFso.OpenTextFile(strPath,1,true)
Msgbox (objStream.ReadAll)
Set objStream = objFso.OpenTextFile(strPath,1,true)
Msgbox (objStream.Read(9))
'關(guān)閉TextStream對(duì)象
objStream.Close
End Sub
Skip、SkipLine的使用
方法名:Skip(numchars)
說(shuō)明:讀取 TextStream文件時(shí)跳過(guò)指定數(shù)目的字符
方法名:SkipLine()
說(shuō)明:當(dāng)讀到 TextStream文件時(shí),跳過(guò)下一行。
示例:
Dim strPath,strText
strPath = "C:\test.txt"
'調(diào)用函數(shù)
Call CreateFile(strPath)
Sub CreateFile(strPath)
Dim objFso,objStream
'創(chuàng)建FileSystemObject對(duì)象
Set objFso = CreateObject ("Scripting.FileSystemObject")
'使用FileSystemObject對(duì)象的CreateTextFile(),來(lái)返回一個(gè)TextStream對(duì)象句柄
Set objStream = objFso.CreateTextFile(strPath,True)
'在文本中寫(xiě)入字符
objStream.Write "This is Test !" & vbCrLf & "hello word !"
'以只讀的方式打開(kāi)文件
Set objStream = objFso.OpenTextFile(strPath,1,true)
'讀取文件時(shí)跳過(guò)5個(gè)字符;或者跳過(guò)當(dāng)前行,讀取下一行
objStream.Skip(5)
Msgbox objStream.ReadAll
Set objStream = objFso.OpenTextFile(strPath,1,true)
'跳過(guò)第一行
objStream.SkipLine
Msgbox objStream.ReadAll
'關(guān)閉TextStream對(duì)象
objStream.Close
End Sub
TextStream對(duì)象的屬性
|
屬性 |
說(shuō)明 |
|
AtEndOfLine |
如果文件位置指針在文件中一行的末尾則返回 True |
|
AtEndOfStream |
如果文件位置指針在文件的末尾則返回 True |
|
Column |
從 1 開(kāi)始返回文件中當(dāng)前字符的列號(hào) |
|
Line |
從 1 開(kāi)始返回文件中當(dāng)前行的行號(hào)” |
AtEndOfLine及AtEndOfStream的使用
兩者間的區(qū)別是:
AtEndOfLine——讀取到當(dāng)前文本行的末尾;
AtEndOfStream——讀取到整個(gè)文本的末尾
示例:
Dim strPath,strText
strPath = "C:\test.txt"
'調(diào)用函數(shù)
Call CreateFile(strPath)
Sub CreateFile(strPath)
Dim objFso,objStream,str
'創(chuàng)建FileSystemObject對(duì)象
Set objFso = CreateObject ("Scripting.FileSystemObject")
'以只讀的方式打開(kāi)文件,如果文件不存在則創(chuàng)建它
Set objStream = objFso.OpenTextFile(strPath,1,true)
'如果當(dāng)前的指針不在行末,則讀取文本內(nèi)容
Do While objStream.AtEndOfLine <> true
str = str + objStream.Read(1)
Loop
msgbox str
str = ""
Set objStream = objFso.OpenTextFile(strPath,1,true)
'如果當(dāng)前的指針不在文本末端,則讀取文本內(nèi)容
Do While objStream.AtEndOfStream <> true
str = str + objStream.Read(1)
Loop
MsgBox str
'關(guān)閉TextStream對(duì)象
objStream.Close
End Sub
Column及Line的使用
示例:
Call TestTextStream("c:\test.txt")
Sub TestTextStream(strPath)
Dim objFso,objTStream,str
Set objFso = CreateObject("Scripting.FileSystemObject")
'以只讀的方式打開(kāi)文件
Set objTStream = objFso.OpenTextFile(strPath,1)
'如果當(dāng)前的指針不在整個(gè)文檔的末尾,讀取文本的所有內(nèi)容
Do While objTStream.AtEndOfStream <> true
objTStream.ReadAll
str = str + "共有" & objTStream.Line & "行數(shù)據(jù),光標(biāo)最后所在列號(hào)為:" &objTStream.Column & vbCrLf
Loop
'打印信息
MsgBox str
End Sub
文本讀取示例:
如何讀取文本最后一行數(shù)據(jù)?
Dim Fso,MyFile
Dim strLine
'創(chuàng)建FileSystemObject對(duì)象
Set Fso = CreateObject("Scripting.FileSystemObject")
'以只讀的方式打開(kāi)文件
Set MyFile = Fso.OpenTextFile("C:\test.txt",1)
'直到到達(dá)文件尾
Do Until MyFile.AtEndOfStream
'讀取當(dāng)前整行數(shù)據(jù)
strLine = MyFile.ReadLine
Loop
MyFile.Close
MsgBox strLine
如何讀取文本最后一行數(shù)據(jù)(文件末尾有空行)?
Dim Fso,MyFile
Dim strLine
'創(chuàng)建FileSystemObject對(duì)象
Set Fso = CreateObject("Scripting.FileSystemObject")
'以只讀的方式打開(kāi)文件
Set MyFile = Fso.OpenTextFile("C:\test.txt",1)
Do Until MyFile.AtEndOfStream
'讀取當(dāng)前整行字符串
strNextLine = MyFile.ReadLine
'判斷讀取的整行字符串是不是空白
If Len(strNextLine) > 0 Then
'不是空白,則賦值
strLine = strNextLine
End If
Loop
MyFile.Close
MsgBox strLine
讀取文本指定行內(nèi)容
MsgBox TestTextStream("c:\test.txt",1)
Function TestTextStream(strPath,IntLine)
Dim Fso,MyFile
Set Fso = CreateObject("Scripting.FileSystemObject")
'以只讀的方式打開(kāi)文件
Set MyFile = Fso.OpenTextFile(strPath,1)
'如果當(dāng)前的指針不在整個(gè)文檔的末尾,讀取文本的整行內(nèi)容
Do Until MyFile.AtEndOfStream
TestTextStream = MyFile.ReadLine
IntLine = IntLine - 1
'判斷光標(biāo)是否已達(dá)到指定行,達(dá)到則退出函數(shù)
If IntLine = 0 Then
Exit Function
End If
Loop
End Function
這篇文章就結(jié)束到這了,需要的朋友可以參考一下。
相關(guān)文章
VBS基礎(chǔ)篇 - vbscript常用函數(shù)及功能
這篇文章主要介紹了VBS基礎(chǔ)篇 - vbscript常用函數(shù),需要的朋友可以參考下2018-06-06
雷客圖 站長(zhǎng)安全助手 vbs版代碼(asp 木馬查找)
雷客圖ASP站長(zhǎng)安全助手vbs版 使用說(shuō)明2009-07-07
如何通過(guò)計(jì)劃任務(wù)調(diào)用QuickTest測(cè)試腳本
如何通過(guò)計(jì)劃任務(wù)調(diào)用QuickTest測(cè)試腳本...2007-03-03

