VBS基础篇 - vbscript 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(可选)和换行符。
示例:
DimstrPath,strText
strPath="C:\testing.txt"
strText="ThisisTest!helloword!"
'调用函数
CallCreateFile(strPath,strText)
SubCreateFile(strPath,strText)
DimobjFso,objStream
'创建FileSystemObject对象
SetobjFso=CreateObject("Scripting.FileSystemObject")
'使用CreateTextFile(),来返回一个TextStream对象句柄
SetobjStream=objFso.CreateTextFile(strPath,True)
'三个Write的意思为:在文本中写入字符、写入带换行符的字符、写入3个换行符
objStream.Write(strText)
objStream.WriteLine(strText)
objStream.WriteBlankLines3
'关闭TextStream对象
objStream.Close
EndSub
Read、ReadAll及ReadLine的使用
方法名:Read(numchars)
说明:从TextStream文件中读入指定数目的字符并返回结果字符串。
方法名:ReadAll()
说明:读入全部TextStream文件并返回结果字符串。
方法名:ReadLine()
说明:从TextStream文件中读入一整行字符(直到下一行,但不包括下一行字符),并返回字符串
示例:
CallCreateFile("c:\test.txt","ThisisTest!"&vbCrLf&"helloword!")
SubCreateFile(strPath,strText)
DimobjFso,objStream
'创建FileSystemObject对象
SetobjFso=CreateObject("Scripting.FileSystemObject")
'使用FileSystemObject对象的CreateTextFile(),来返回一个TextStream对象句柄
SetobjStream=objFso.CreateTextFile(strPath,True)
'写入字符
objStream.WriteLine(strText)
'读取字符串分别是:读取整行、读取所有、读取指定数目的字符
Msgbox(objStream.ReadLine)
SetobjStream=objFso.OpenTextFile(strPath,1,true)
Msgbox(objStream.ReadAll)
SetobjStream=objFso.OpenTextFile(strPath,1,true)
Msgbox(objStream.Read(9))
'关闭TextStream对象
objStream.Close
EndSub
Skip、SkipLine的使用
方法名:Skip(numchars)
说明:读取TextStream文件时跳过指定数目的字符
方法名:SkipLine()
说明:当读到TextStream文件时,跳过下一行。
示例:
DimstrPath,strText
strPath="C:\test.txt"
'调用函数
CallCreateFile(strPath)
SubCreateFile(strPath)
DimobjFso,objStream
'创建FileSystemObject对象
SetobjFso=CreateObject("Scripting.FileSystemObject")
'使用FileSystemObject对象的CreateTextFile(),来返回一个TextStream对象句柄
SetobjStream=objFso.CreateTextFile(strPath,True)
'在文本中写入字符
objStream.Write"ThisisTest!"&vbCrLf&"helloword!"
'以只读的方式打开文件
SetobjStream=objFso.OpenTextFile(strPath,1,true)
'读取文件时跳过5个字符;或者跳过当前行,读取下一行
objStream.Skip(5)
MsgboxobjStream.ReadAll
SetobjStream=objFso.OpenTextFile(strPath,1,true)
'跳过第一行
objStream.SkipLine
MsgboxobjStream.ReadAll
'关闭TextStream对象
objStream.Close
EndSub
TextStream对象的属性
属性 说明 AtEndOfLine 如果文件位置指针在文件中一行的末尾则返回 True AtEndOfStream 如果文件位置指针在文件的末尾则返回 True Column 从 1 开始返回文件中当前字符的列号 Line 从 1 开始返回文件中当前行的行号”
AtEndOfLine及AtEndOfStream的使用
两者间的区别是:
AtEndOfLine——读取到当前文本行的末尾;
AtEndOfStream——读取到整个文本的末尾
示例:
DimstrPath,strText
strPath="C:\test.txt"
'调用函数
CallCreateFile(strPath)
SubCreateFile(strPath)
DimobjFso,objStream,str
'创建FileSystemObject对象
SetobjFso=CreateObject("Scripting.FileSystemObject")
'以只读的方式打开文件,如果文件不存在则创建它
SetobjStream=objFso.OpenTextFile(strPath,1,true)
'如果当前的指针不在行末,则读取文本内容
DoWhileobjStream.AtEndOfLine<>true
str=str+objStream.Read(1)
Loop
msgboxstr
str=""
SetobjStream=objFso.OpenTextFile(strPath,1,true)
'如果当前的指针不在文本末端,则读取文本内容
DoWhileobjStream.AtEndOfStream<>true
str=str+objStream.Read(1)
Loop
MsgBoxstr
'关闭TextStream对象
objStream.Close
EndSub
Column及Line的使用
示例:
CallTestTextStream("c:\test.txt")
SubTestTextStream(strPath)
DimobjFso,objTStream,str
SetobjFso=CreateObject("Scripting.FileSystemObject")
'以只读的方式打开文件
SetobjTStream=objFso.OpenTextFile(strPath,1)
'如果当前的指针不在整个文档的末尾,读取文本的所有内容
DoWhileobjTStream.AtEndOfStream<>true
objTStream.ReadAll
str=str+"共有"&objTStream.Line&"行数据,光标最后所在列号为:"&objTStream.Column&vbCrLf
Loop
'打印信息
MsgBoxstr
EndSub
文本读取示例:
如何读取文本最后一行数据?
DimFso,MyFile
DimstrLine
'创建FileSystemObject对象
SetFso=CreateObject("Scripting.FileSystemObject")
'以只读的方式打开文件
SetMyFile=Fso.OpenTextFile("C:\test.txt",1)
'直到到达文件尾
DoUntilMyFile.AtEndOfStream
'读取当前整行数据
strLine=MyFile.ReadLine
Loop
MyFile.Close
MsgBoxstrLine
如何读取文本最后一行数据(文件末尾有空行)?
DimFso,MyFile
DimstrLine
'创建FileSystemObject对象
SetFso=CreateObject("Scripting.FileSystemObject")
'以只读的方式打开文件
SetMyFile=Fso.OpenTextFile("C:\test.txt",1)
DoUntilMyFile.AtEndOfStream
'读取当前整行字符串
strNextLine=MyFile.ReadLine
'判断读取的整行字符串是不是空白
IfLen(strNextLine)>0Then
'不是空白,则赋值
strLine=strNextLine
EndIf
Loop
MyFile.Close
MsgBoxstrLine
读取文本指定行内容
MsgBoxTestTextStream("c:\test.txt",1)
FunctionTestTextStream(strPath,IntLine)
DimFso,MyFile
SetFso=CreateObject("Scripting.FileSystemObject")
'以只读的方式打开文件
SetMyFile=Fso.OpenTextFile(strPath,1)
'如果当前的指针不在整个文档的末尾,读取文本的整行内容
DoUntilMyFile.AtEndOfStream
TestTextStream=MyFile.ReadLine
IntLine=IntLine-1
'判断光标是否已达到指定行,达到则退出函数
IfIntLine=0Then
ExitFunction
EndIf
Loop
EndFunction
这篇文章就结束到这了,需要的朋友可以参考一下。