TextStream对象是用于访问文本文件的对象,它是FileSystemObject一个独立的附属对象,但在使用TextStream对象时,我们仍要借助FileSystemObject 对象或其附属对象来创建一个 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
  '创建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
  '创建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
  '创建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的使用

两者间的区别是:

AtEndOfLine——读取到当前文本行的末尾;

AtEndOfStream——读取到整个文本的末尾

示例:

Dim strPath,strText
strPath = "C:\test.txt"
'调用函数
Call CreateFile(strPath)
 
Sub CreateFile(strPath)
  Dim objFso,objStream,str
  '创建FileSystemObject对象
  Set objFso = CreateObject ("Scripting.FileSystemObject")
  '以只读的方式打开文件,如果文件不存在则创建它
  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
'创建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
'创建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

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
评论“VBS基础篇 - vbscript TextStream对象”
暂无“VBS基础篇 - vbscript TextStream对象”评论...

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。