• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    VBS基础篇 - vbscript TextStream对象

    发布者: 晋3555 | 发布时间: 2025-8-14 02:44| 查看数: 41| 评论数: 0|帖子模式

    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(可选)和换行符。
    示例:
    1. Dim strPath,strText
    2. strPath = "C:\testing.txt"
    3. strText = "This is Test !hello word !"
    4. '调用函数
    5. Call CreateFile(strPath,strText)

    6. Sub CreateFile(strPath,strText)
    7.   Dim objFso,objStream
    8.   '创建FileSystemObject对象
    9.   Set objFso = CreateObject("Scripting.FileSystemObject")
    10.   '使用CreateTextFile(),来返回一个TextStream对象句柄
    11.   Set objStream = objFso.CreateTextFile(strPath,True)
    12.   '三个Write的意思为:在文本中写入字符、写入带换行符的字符、写入3个换行符
    13.   objStream.Write(strText)
    14.   objStream.WriteLine(strText)
    15.   objStream. WriteBlankLines 3
    16.   '关闭TextStream对象
    17.   objStream.Close
    18. End Sub
    复制代码
    Read、ReadAll及ReadLine的使用
    方法名:Read(numchars)
    说明:从 TextStream文件中读入指定数目的字符并返回结果字符串。
    方法名:ReadAll()
    说明:读入全部 TextStream文件并返回结果字符串。
    方法名:ReadLine()
    说明:从 TextStream文件中读入一整行字符(直到下一行,但不包括下一行字符),并返回字符串
    示例:
    1. Call CreateFile("c:\test.txt", "This is Test !" & vbCrLf & "hello word !")

    2. Sub CreateFile(strPath,strText)
    3.   Dim objFso,objStream
    4.   '创建FileSystemObject对象
    5.   Set objFso = CreateObject("Scripting.FileSystemObject")
    6.   '使用FileSystemObject对象的CreateTextFile(),来返回一个TextStream对象句柄
    7.   Set objStream = objFso.CreateTextFile(strPath,True)
    8.   '写入字符
    9.   objStream.WriteLine(strText)
    10.   '读取字符串分别是:读取整行、读取所有、读取指定数目的字符
    11.   Msgbox (objStream.ReadLine)
    12.   Set objStream = objFso.OpenTextFile(strPath,1,true)
    13.   Msgbox (objStream.ReadAll)
    14.   Set objStream = objFso.OpenTextFile(strPath,1,true)
    15.   Msgbox (objStream.Read(9))
    16.   '关闭TextStream对象
    17.   objStream.Close
    18. End Sub
    复制代码
    Skip、SkipLine的使用
    方法名:Skip(numchars)
    说明:读取 TextStream文件时跳过指定数目的字符
    方法名:SkipLine()
    说明:当读到 TextStream文件时,跳过下一行。
    示例:
    1. Dim strPath,strText
    2. strPath = "C:\test.txt"
    3. '调用函数
    4. Call CreateFile(strPath)

    5. Sub CreateFile(strPath)
    6.   Dim objFso,objStream
    7.   '创建FileSystemObject对象
    8.   Set objFso = CreateObject ("Scripting.FileSystemObject")
    9.   '使用FileSystemObject对象的CreateTextFile(),来返回一个TextStream对象句柄
    10.   Set objStream = objFso.CreateTextFile(strPath,True)
    11.   '在文本中写入字符
    12.   objStream.Write "This is Test !" & vbCrLf & "hello word !"
    13.   '以只读的方式打开文件
    14.   Set objStream = objFso.OpenTextFile(strPath,1,true)
    15.   '读取文件时跳过5个字符;或者跳过当前行,读取下一行
    16.   objStream.Skip(5)
    17.   Msgbox objStream.ReadAll
    18.   Set objStream = objFso.OpenTextFile(strPath,1,true)
    19.   '跳过第一行
    20.   objStream.SkipLine
    21.   Msgbox objStream.ReadAll
    22.   '关闭TextStream对象
    23.   objStream.Close
    24. End Sub
    复制代码
     TextStream对象的属性
          属性
          
          说明
          
          AtEndOfLine
          
          如果文件位置指针在文件中一行的末尾则返回 True
          
          AtEndOfStream
          
          如果文件位置指针在文件的末尾则返回 True
          
          Column
          
          从 1 开始返回文件中当前字符的列号
          
          Line
          
          从 1 开始返回文件中当前行的行号”
          

    AtEndOfLine及AtEndOfStream的使用
    两者间的区别是:
    AtEndOfLine——读取到当前文本行的末尾;
    AtEndOfStream——读取到整个文本的末尾
    示例:
    1. Dim strPath,strText
    2. strPath = "C:\test.txt"
    3. '调用函数
    4. Call CreateFile(strPath)

    5. Sub CreateFile(strPath)
    6.   Dim objFso,objStream,str
    7.   '创建FileSystemObject对象
    8.   Set objFso = CreateObject ("Scripting.FileSystemObject")
    9.   '以只读的方式打开文件,如果文件不存在则创建它
    10.   Set objStream = objFso.OpenTextFile(strPath,1,true)
    11.   '如果当前的指针不在行末,则读取文本内容
    12.   Do While objStream.AtEndOfLine <> true
    13.     str = str + objStream.Read(1)
    14.   Loop
    15.   msgbox str
    16.   str = ""
    17.   Set objStream = objFso.OpenTextFile(strPath,1,true)
    18.   '如果当前的指针不在文本末端,则读取文本内容
    19.   Do While objStream.AtEndOfStream <> true
    20.     str = str + objStream.Read(1)
    21.   Loop
    22.   MsgBox str
    23.   '关闭TextStream对象
    24.   objStream.Close
    25. End Sub
    复制代码
    Column及Line的使用
    示例:
    1. Call TestTextStream("c:\test.txt")

    2. Sub TestTextStream(strPath)
    3.   Dim objFso,objTStream,str
    4.   Set objFso = CreateObject("Scripting.FileSystemObject")
    5.   '以只读的方式打开文件
    6.   Set objTStream = objFso.OpenTextFile(strPath,1)
    7.   '如果当前的指针不在整个文档的末尾,读取文本的所有内容
    8.   Do While objTStream.AtEndOfStream <> true
    9.     objTStream.ReadAll
    10.     str = str + "共有" & objTStream.Line & "行数据,光标最后所在列号为:" &objTStream.Column & vbCrLf
    11.   Loop
    12.   '打印信息
    13.   MsgBox str
    14. End Sub  
    复制代码
    文本读取示例:
      如何读取文本最后一行数据?  
    1. Dim Fso,MyFile
    2. Dim strLine
    3. '创建FileSystemObject对象
    4. Set Fso = CreateObject("Scripting.FileSystemObject")
    5. '以只读的方式打开文件
    6. Set MyFile = Fso.OpenTextFile("C:\test.txt",1)
    7. '直到到达文件尾
    8. Do Until MyFile.AtEndOfStream
    9.   '读取当前整行数据
    10.   strLine = MyFile.ReadLine
    11. Loop
    12. MyFile.Close
    13. MsgBox strLine
    复制代码
    如何读取文本最后一行数据(文件末尾有空行)?  
    1. Dim Fso,MyFile
    2. Dim strLine
    3. '创建FileSystemObject对象
    4. Set Fso = CreateObject("Scripting.FileSystemObject")
    5. '以只读的方式打开文件
    6. Set MyFile = Fso.OpenTextFile("C:\test.txt",1)
    7. Do Until MyFile.AtEndOfStream
    8.   '读取当前整行字符串
    9.   strNextLine = MyFile.ReadLine
    10.   '判断读取的整行字符串是不是空白
    11.   If Len(strNextLine) > 0 Then
    12.     '不是空白,则赋值
    13.     strLine = strNextLine
    14.   End If
    15. Loop
    16. MyFile.Close
    17. MsgBox strLine
    复制代码
    读取文本指定行内容 
    1. MsgBox TestTextStream("c:\test.txt",1)

    2. Function TestTextStream(strPath,IntLine)
    3.   Dim Fso,MyFile
    4.   Set Fso = CreateObject("Scripting.FileSystemObject")
    5.   '以只读的方式打开文件
    6.   Set MyFile = Fso.OpenTextFile(strPath,1)
    7.   '如果当前的指针不在整个文档的末尾,读取文本的整行内容
    8.   Do Until MyFile.AtEndOfStream
    9.     TestTextStream = MyFile.ReadLine
    10.     IntLine = IntLine - 1
    11.     '判断光标是否已达到指定行,达到则退出函数
    12.     If IntLine = 0 Then
    13.       Exit Function
    14.     End If
    15.   Loop
    16. End Function
    复制代码
    这篇文章就结束到这了,需要的朋友可以参考一下。

    来源:互联网
    免责声明:如果侵犯了您的权益,请联系站长(1277306191@qq.com),我们会及时删除侵权内容,谢谢合作!

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表