VBS基础篇 - 对象(7) - TextStream对象
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,strTextstrPath = "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.CloseEnd 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.CloseEnd 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,strTextstrPath = "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.CloseEnd 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,strTextstrPath = "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.CloseEnd 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 strEnd Sub |
文本读取示例:
如何读取文本最后一行数据?
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
Dim Fso,MyFileDim strLine'创建FileSystemObject对象Set Fso = CreateObject("Scripting.FileSystemObject")'以只读的方式打开文件Set MyFile = Fso.OpenTextFile("C:\test.txt",1)'直到到达文件尾Do Until MyFile.AtEndOfStream '读取当前整行数据 strLine = MyFile.ReadLineLoopMyFile.CloseMsgBox strLine |
如何读取文本最后一行数据(文件末尾有空行)?
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
Dim Fso,MyFileDim 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 IfLoopMyFile.CloseMsgBox 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 LoopEnd Function |
VBS基础篇 - 对象(7) - TextStream对象的更多相关文章
- VBS基础篇 - 对象(3) - FileSystemObject对象
VBS基础篇 - 对象(3) - FileSystemObject对象 文件系统是所有操作系统最重要的部分之一,脚本经常会需要对文件及文件夹进行访问和管理,在Vbs中对桌面和文件系统进行访问的顶级 ...
- VBS基础篇 - 对象(1) - Class对象
VBS基础篇 - 对象(1) - Class对象 相信对JAVA有一定了解的朋友一定对类这个名词不陌生,但是大家可能没有想过在VBS中使用Class类吧,其实Class类在自动化测试中是相当常用的 ...
- VBS基础篇 - 对象(5) - File对象
VBS基础篇 - 对象(5) - File对象 描述:提供对文件所有属性的访问,从FSO对象的GetFile方法获得. 使用File对象 要用File对象模型来编程必须先用FileS ...
- VBS基础篇 - 对象(6) - Folder对象
VBS基础篇 - 对象(6) - Folder对象 描述:提供对文件所有属性的访问,从FSO对象的GetFile方法获得 使用Folder对象 要用Folder对象模型来编程必须先用FSO对象的G ...
- Python(四)基础篇之「文件对象&错误处理」
[笔记]Python(四)基础篇之「文件对象&错误处理」 2016-12-08 ZOE 编程之魅 Python Notes: ★ 如果你是第一次阅读,推荐先浏览:[重要公告]文章更新. ...
- VBS基础篇 - 循环语句(4) - For Each...Next
VBS基础篇 - 循环语句(4) - For Each...Next For Each...Next 循环与 For...Next 循环类似.For Each...Next 不是将语句运行指定的次 ...
- VBS基础篇 - 杂项 - Sendkeys
VBS基础篇 - 杂项 - Sendkeys 模拟键盘操作,将一个或多个按键指令发送到指定Windows窗口来控制应用程序运行 其使用格式为:object.SendKeys(string) obj ...
- VBS基础篇 - 过程(sub 与 Function)
VBS基础篇 - 过程(sub 与 Function) 在VBscript中,有两种procedure:Sub procedure与Function procedure Sub过程:是包含在 Sub ...
- VBS基础篇 - 循环语句(3) - For...Next
VBS基础篇 - 循环语句(3) - For...Next 指定循环次数,使用计数器重复运行语句,语法结构如下: 1 2 3 4 5 For counter = start To end [Ste ...
随机推荐
- github本地库及clone常用命令
新建本地库 1. cd d: 2. mkdir git 3. cd git 4. git init 5. git remote add origin git@github.com:swportal/ ...
- sqlserver2012评估期已过问题处理
于之前安装sqlserver2012忘记输入序列号,现在出现评估期已过的问题,网上忙活半天,才解决,发现网上叙述都很凌乱,而且只有大意,新手很难操作,所以把我操作的过程分享给大家 步骤阅读 百度经 ...
- MTK平台Android中常用的路径
开机Logo的路径: bootable\bootloader\lk\dev\logo 开机Logo图片分辨率路径: device\rq\rq6735_35gt_b_l1\ProjectConfig.m ...
- 10676 涂鸦跳跃(sort)
10676 涂鸦跳跃 该题有题解 时间限制:1000MS 内存限制:65535K提交次数:240 通过次数:19 题型: 编程题 语言: G++;GCC Description 你玩过曾经风靡一 ...
- mybatis笔记(一)
mybatis (一)传值 三种方式 1.直接传值void getMessageList(int userId,String userName);mapper.xml 获取 #{0}代表userId ...
- hadoop报错 Message missing required fields: callId, status
今天群里有人问hadoop的问题,说百度上怎么都查不到,还好hadoop之前玩过一阵,也遇上过这个问题 hadoop-2.2.0 hbase 0.95-hadoop2的 ,hdfs正常 ,启动 hb ...
- Vue.js + Seajs 实例(包含vue-router使用)
这个Demo 相关JS: Sea.js : Version 2.3.0 seajs-text : Version 2.3.0 vue.js : Version 1.0.24 vue-router: ...
- ImageView.ScaleType设置图解
图文相配很清晰的看出每个属性的效果, 感觉 CENTER_CROP 比较有用,长宽自动适应 ImageView ,整个图片自动缩略填充整个区域且居中显示(高宽不一定是view的尺寸),以前用JS在网页 ...
- 3-jQuery - AJAX get()
介绍 GET 基本上用于从服务器获得(取回)数据.注释:GET 方法可能返回缓存数据. 格式 $.get(URL,callback); //必需的 URL 参数规定您希望请求的 URL. //可选的 ...
- 为什么需要异步?why?来看一段代码。
为什么需要异步?why?来看一段代码. 问题1: for(var i=0;i<100000;i++){ } alert('hello world!!!'); 这段代码的意思是执行100...次后 ...