溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

VBS中TextStream對象的作用是什么

發(fā)布時間:2021-05-24 16:34:20 來源:億速云 閱讀:121 作者:Leah 欄目:開發(fā)技術

這篇文章將為大家詳細講解有關VBS中TextStream對象的作用是什么,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

TextStream對象是用于訪問文本文件的對象,它是FileSystemObject一個獨立的附屬對象,但在使用TextStream對象時,我們仍要借助FileSystemObject 對象或其附屬對象來創(chuàng)建一個 TextStream 對象并訪問磁盤文件的內容??梢酝ㄟ^FileSystemObject 對象的CreateTextFile()及OpenTextFile(),來獲取TextStream的對象句柄。

下面我們來具體的看看TextStream 對象的方法及屬性的使用

TextStream對象的方法

方法說明
Close()關閉一個打開的文件
Read(numchars)從文件中讀出 numchars 個字符
ReadAll()作為單個字符串讀出整個文件
ReadLine()作為一個字符串從文件中讀出一行(直到回車符和換行)
Skip(numchars)當從文件讀出時忽略 numchars 個字符
SkipLine()當從文件讀出時忽略下一行
Write(string)向文件寫入字符串 string
WriteLine(string)向文件寫入字符串 string(可選)和換行符
WriteBlankLines(n)向文件寫入 n 個換行符

Close、Write、WriteLine及WriteBlankLines的使用

方法名:Close()

說明:關閉正在打開的文件

方法名:WriteLine(string)

說明:向文件寫入字符串 string(可選)和換行符。

示例:

Dim strPath,strText
strPath = "C:\testing.txt"
strText = "This is Test !hello word !"
'調用函數
Call CreateFile(strPath,strText)
 
Sub CreateFile(strPath,strText)
  Dim objFso,objStream
  '創(chuàng)建FileSystemObject對象
  Set objFso = CreateObject("Scripting.FileSystemObject")
  '使用CreateTextFile(),來返回一個TextStream對象句柄
  Set objStream = objFso.CreateTextFile(strPath,True)
  '三個Write的意思為:在文本中寫入字符、寫入帶換行符的字符、寫入3個換行符
  objStream.Write(strText)
  objStream.WriteLine(strText)
  objStream. WriteBlankLines 3
  '關閉TextStream對象
  objStream.Close
End Sub

Read、ReadAll及ReadLine的使用

方法名:Read(numchars)

說明:從 TextStream文件中讀入指定數目的字符并返回結果字符串。

方法名:ReadAll()

說明:讀入全部 TextStream文件并返回結果字符串。

方法名:ReadLine()

說明:從 TextStream文件中讀入一整行字符(直到下一行,但不包括下一行字符),并返回字符串

示例:

Call CreateFile("c:\test.txt", "This is Test !" & vbCrLf & "hello word !")
 
Sub CreateFile(strPath,strText)
  Dim objFso,objStream
  '創(chuàng)建FileSystemObject對象
  Set objFso = CreateObject("Scripting.FileSystemObject")
  '使用FileSystemObject對象的CreateTextFile(),來返回一個TextStream對象句柄
  Set objStream = objFso.CreateTextFile(strPath,True)
  '寫入字符
  objStream.WriteLine(strText)
  '讀取字符串分別是:讀取整行、讀取所有、讀取指定數目的字符
  Msgbox (objStream.ReadLine)
  Set objStream = objFso.OpenTextFile(strPath,1,true)
  Msgbox (objStream.ReadAll)
  Set objStream = objFso.OpenTextFile(strPath,1,true)
  Msgbox (objStream.Read(9))
  '關閉TextStream對象
  objStream.Close
End Sub

 Skip、SkipLine的使用

方法名:Skip(numchars)

說明:讀取 TextStream文件時跳過指定數目的字符

方法名:SkipLine()

說明:當讀到 TextStream文件時,跳過下一行。

示例:

Dim strPath,strText
strPath = "C:\test.txt"
'調用函數
Call CreateFile(strPath)
 
Sub CreateFile(strPath)
  Dim objFso,objStream
  '創(chuàng)建FileSystemObject對象
  Set objFso = CreateObject ("Scripting.FileSystemObject")
  '使用FileSystemObject對象的CreateTextFile(),來返回一個TextStream對象句柄
  Set objStream = objFso.CreateTextFile(strPath,True)
  '在文本中寫入字符
  objStream.Write "This is Test !" & vbCrLf & "hello word !"
  '以只讀的方式打開文件
  Set objStream = objFso.OpenTextFile(strPath,1,true)
  '讀取文件時跳過5個字符;或者跳過當前行,讀取下一行
  objStream.Skip(5)
  Msgbox objStream.ReadAll
  Set objStream = objFso.OpenTextFile(strPath,1,true)
  '跳過第一行
  objStream.SkipLine
  Msgbox objStream.ReadAll
  '關閉TextStream對象
  objStream.Close
End Sub

 TextStream對象的屬性

屬性

說明

AtEndOfLine

如果文件位置指針在文件中一行的末尾則返回 True

AtEndOfStream

如果文件位置指針在文件的末尾則返回 True

Column

從 1 開始返回文件中當前字符的列號

Line

從 1 開始返回文件中當前行的行號”

AtEndOfLine及AtEndOfStream的使用

兩者間的區(qū)別是:

AtEndOfLine——讀取到當前文本行的末尾;

AtEndOfStream——讀取到整個文本的末尾

示例:

Dim strPath,strText
strPath = "C:\test.txt"
'調用函數
Call CreateFile(strPath)
 
Sub CreateFile(strPath)
  Dim objFso,objStream,str
  '創(chuàng)建FileSystemObject對象
  Set objFso = CreateObject ("Scripting.FileSystemObject")
  '以只讀的方式打開文件,如果文件不存在則創(chuàng)建它
  Set objStream = objFso.OpenTextFile(strPath,1,true)
  '如果當前的指針不在行末,則讀取文本內容
  Do While objStream.AtEndOfLine <> true
    str = str + objStream.Read(1)
  Loop
  msgbox str
  str = ""
  Set objStream = objFso.OpenTextFile(strPath,1,true)
  '如果當前的指針不在文本末端,則讀取文本內容
  Do While objStream.AtEndOfStream <> true
    str = str + objStream.Read(1)
  Loop
  MsgBox str
  '關閉TextStream對象
  objStream.Close
End Sub

Column及Line的使用

示例:

Call TestTextStream("c:\test.txt")
 
Sub TestTextStream(strPath)
  Dim objFso,objTStream,str
  Set objFso = CreateObject("Scripting.FileSystemObject")
  '以只讀的方式打開文件
  Set objTStream = objFso.OpenTextFile(strPath,1)
  '如果當前的指針不在整個文檔的末尾,讀取文本的所有內容
  Do While objTStream.AtEndOfStream <> true
    objTStream.ReadAll
    str = str + "共有" & objTStream.Line & "行數據,光標最后所在列號為:" &objTStream.Column & vbCrLf
  Loop
  '打印信息
  MsgBox str
End Sub

文本讀取示例:

  如何讀取文本最后一行數據?  

Dim Fso,MyFile
Dim strLine
'創(chuàng)建FileSystemObject對象
Set Fso = CreateObject("Scripting.FileSystemObject")
'以只讀的方式打開文件
Set MyFile = Fso.OpenTextFile("C:\test.txt",1)
'直到到達文件尾
Do Until MyFile.AtEndOfStream
  '讀取當前整行數據
  strLine = MyFile.ReadLine
Loop
MyFile.Close
MsgBox strLine

如何讀取文本最后一行數據(文件末尾有空行)?  

Dim Fso,MyFile
Dim strLine
'創(chuàng)建FileSystemObject對象
Set Fso = CreateObject("Scripting.FileSystemObject")
'以只讀的方式打開文件
Set MyFile = Fso.OpenTextFile("C:\test.txt",1)
Do Until MyFile.AtEndOfStream
  '讀取當前整行字符串
  strNextLine = MyFile.ReadLine
  '判斷讀取的整行字符串是不是空白
  If Len(strNextLine) > 0 Then
    '不是空白,則賦值
    strLine = strNextLine
  End If
Loop
MyFile.Close
MsgBox strLine

讀取文本指定行內容 

MsgBox TestTextStream("c:\test.txt",1)
 
Function TestTextStream(strPath,IntLine)
  Dim Fso,MyFile
  Set Fso = CreateObject("Scripting.FileSystemObject")
  '以只讀的方式打開文件
  Set MyFile = Fso.OpenTextFile(strPath,1)
  '如果當前的指針不在整個文檔的末尾,讀取文本的整行內容
  Do Until MyFile.AtEndOfStream
    TestTextStream = MyFile.ReadLine
    IntLine = IntLine - 1
    '判斷光標是否已達到指定行,達到則退出函數
    If IntLine = 0 Then
      Exit Function
    End If
  Loop
End Function

關于VBS中TextStream對象的作用是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vbs
AI