VBS读写文件之TextStream对象


1、TextStream对象

  • TextStream对象是用于访问文本文件的对象,它是FileSystemObject一个独立的附属对象,但在使用TextStream对象时,我们仍要借助FileSystemObject 对象或其附属对象来创建一个 TextStream 对象并访问磁盘文件的内容。
  • 可以通过FileSystemObject 对象的CreateTextFile()及OpenTextFile(),来获取TextStream的对象句柄。

2、TextStream对象的方法

2.1、Close()

关闭一个打开的文件

2.2、Read(numchars)

从文件中读出 numchars 个字符

2.3、ReadAll()

作为单个字符串读出整个文件

2.4、ReadLine()

作为一个字符串从文件中读出一行(直到回车符和换行)

2.5、Skip(numchars)

当从文件读出时忽略 numchars 个字符

2.6、SkipLine()

当从文件读出时忽略下一行

2.7、Write(string)

向文件写入字符串 string

2.8、WriteLine(string)

向文件写入字符串 string(可选)和换行符

2.9、WriteBlankLines(n)

向文件写入 n 个换行符

2.10、 Skip

读取 TextStream文件时跳过指定数目的字符

    objStream.Skip(5)		'读取文件时跳过5个字符;或者跳过当前行,读取下一行

2.11、SkipLine

读到 TextStream文件时,跳过下一行。

    objStream.SkipLine '跳过第一行

2.12、TextStream对象的属性

属性说明
AtEndOfLine如果文件位置指针在文件中一行的末尾则返回 True
AtEndOfStream如果文件位置指针在文件的末尾则返回 True
Column从 1 开始返回文件中当前字符的列号
Line从 1 开始返回文件中当前行的行号”
msgbox “当前光标所在行:& objTStream.Column & vbCrLf

2.13、AtEndOfLine及AtEndOfStream

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

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

'如果当前的指针不在行末,则读取文本内容
Do While objStream.AtEndOfLine <> true
        str =  objStream.Read(1)
Loop
'如果当前的指针不在文本末端,则读取文本内容
 Do While objStream.AtEndOfStream <> true
        str = str + objStream.Read(1)
 Loop

3、读写文件举例

3.1、写

Option Explicit

Dim objFso
Dim objStream


Set objFso = CreateObject("Scripting.FileSystemObject")
Set objStream=objFso.CreateTextFile(".\test.txt")
objStream.Write("123")									‘写入123不换行
objStream.WriteLine("456")								‘写入456并换行
objStream.WriteBlankLines 3								‘写入3个换行
objStream.WriteLine("789")
objStream.Close

3.2、读

Option Explicit

Dim objFso
Dim objStream


Set objFso = CreateObject("Scripting.FileSystemObject")
Set objStream=objFso.OpenTextFile(".\test.txt",1,true,true)
msgbox objStream.ReadLine
'Msgbox (objStream.ReadAll)
'Msgbox (objStream.Read(9))
objStream.Close

3.2、读最后一行

'直到到达文件尾
Do Until objStream.AtEndOfStream
    '读取当前整行数据
    strLine = objStream.ReadLine
Loop

3.3、读取最后一行不为空的内容

Do Until objStream.AtEndOfStream
    '读取当前整行字符串
    strNextLine = objStream.ReadLine
    '判断读取的整行字符串是不是空白
    If Len(strNextLine) > 0 Then
        '不是空白,则赋值
        str = strNextLine
    End If
Loop
msgbox str

3.4、读取文本指定行内容


Dim objFso,objStream
Dim IntLine
IntLine=2'第三行

Set objFso=CreateObject("Scripting.FileSystemObject")
'以只读的方式打开文件
Set objStream=objFso.OpenTextFile(".\test.txt",1)
Do until objStream.AtEndOfStream	
	
	if objStream.Line=IntLine then	    
		msgbox objStream.ReadLine
		exit do
	end if
	objStream.SkipLine
Loop
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值