VBS基础篇 - 对象(7) - TextStream对象

 

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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文件中读入一整行字符(直到下一行,但不包括下一行字符),并返回字符串

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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文件时,跳过下一行。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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——读取到整个文本的末尾

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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的使用

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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   

  文本读取示例:

  如何读取文本最后一行数据?  

1
2
3
4
5
6
7
8
9
10
11
12
13
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

  如何读取文本最后一行数据(文件末尾有空行)?  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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

 读取文本指定行内容 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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基础篇 - 对象(7) - TextStream对象的更多相关文章

  1. VBS基础篇 - 对象(3) - FileSystemObject对象

    VBS基础篇 - 对象(3) - FileSystemObject对象   文件系统是所有操作系统最重要的部分之一,脚本经常会需要对文件及文件夹进行访问和管理,在Vbs中对桌面和文件系统进行访问的顶级 ...

  2. VBS基础篇 - 对象(1) - Class对象

    VBS基础篇 - 对象(1) - Class对象   相信对JAVA有一定了解的朋友一定对类这个名词不陌生,但是大家可能没有想过在VBS中使用Class类吧,其实Class类在自动化测试中是相当常用的 ...

  3. VBS基础篇 - 对象(5) - File对象

    VBS基础篇 - 对象(5) - File对象   描述:提供对文件所有属性的访问,从FSO对象的GetFile方法获得. 使用File对象        要用File对象模型来编程必须先用FileS ...

  4. VBS基础篇 - 对象(6) - Folder对象

    VBS基础篇 - 对象(6) - Folder对象   描述:提供对文件所有属性的访问,从FSO对象的GetFile方法获得 使用Folder对象 要用Folder对象模型来编程必须先用FSO对象的G ...

  5. Python(四)基础篇之「文件对象&错误处理」

    [笔记]Python(四)基础篇之「文件对象&错误处理」 2016-12-08 ZOE    编程之魅  Python Notes: ★ 如果你是第一次阅读,推荐先浏览:[重要公告]文章更新. ...

  6. VBS基础篇 - 循环语句(4) - For Each...Next

    VBS基础篇 - 循环语句(4) - For Each...Next   For Each...Next 循环与 For...Next 循环类似.For Each...Next 不是将语句运行指定的次 ...

  7. VBS基础篇 - 杂项 - Sendkeys

    VBS基础篇 - 杂项 - Sendkeys   模拟键盘操作,将一个或多个按键指令发送到指定Windows窗口来控制应用程序运行 其使用格式为:object.SendKeys(string) obj ...

  8. VBS基础篇 - 过程(sub 与 Function)

    VBS基础篇 - 过程(sub 与 Function) 在VBscript中,有两种procedure:Sub procedure与Function procedure Sub过程:是包含在 Sub  ...

  9. VBS基础篇 - 循环语句(3) - For...Next

    VBS基础篇 - 循环语句(3) - For...Next   指定循环次数,使用计数器重复运行语句,语法结构如下: 1 2 3 4 5 For counter = start To end [Ste ...

随机推荐

  1. re2c实例

    #include <stdio.h> #include "demo_def.h" #define T_BEGIN 0 #define T_NUMBER 1 #defin ...

  2. 高一的我曾对自己说"要放慢脚步去生活"!?

    看了高一的时候自己写的日记,瞬间被自己感动到了.以下是当时的几段感慨: 慢是一种放松.是生活的一种良好心态,喜欢这样放慢步伐地生活,那是一种享受! 但我们生活在一个快节奏的时代,我们总是被迫卷进那潮流 ...

  3. Kinetis学习笔记(一)——基于KSDK 2.0

  4. jquery学习笔记3——jq HTML

    jQuery最常用的部分就是操作DOM,jQuery提供了一系列操作DOM的相关方法,使其很容易: 一.获取 1.获取内容 text()方法    设置或返回所选元素的文本内容: html()方法   ...

  5. Java内部类的使用小结

    转载:http://android.blog.51cto.com/268543/384844/ Java内部类的使用小结 内部类是指在一个外部类的内部再定义一个类.类名不需要和文件夹相同. *内部类可 ...

  6. C#隐藏(new)方法和重写(override)方法

    在基类调用的时候 隐藏方法还是调用基类的方法 而重写方法调用的就是子类的中的方法 同时,当子类中的方法与父类或者所实现的接口中的扩展方法冲突时,那么此时相当于一个隐藏方法 基类调用或者接口调用的时候使 ...

  7. Date时间对象方法

  8. Nginx+Apache实现反向代理

    一 反向代理 1.1 反向代理是什么 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器, 并将从服务器上得到的结果返回给 ...

  9. javaWEB总结(8):自定义GenericServlet

    前言: 项目的实际应用中,我们往往为了方便去继承GenericServlet类,而不是去实现Servlet接口,是什么原因呢?下面进行简单的实践操作. 一. 准备工作 1.首先看GenericServ ...

  10. 【界面优化】使用viewpagerindicator添加下划线滑动动画

    开源代码viewpagerindicator里面没有实现tab下划线切换过程中的移动动画,都是很突兀的多个fragement之间的切换,导致用户体验略差,google了下相关问题,发现一片博文: ht ...