欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

使用VBS访问外部文本文件一些方法和脚本实例代码

程序员文章站 2024-01-17 12:20:16
处理文件用到的常量有:forreading = 1 ,forwriting=2,forappending=8,用于的操作分别是读/写和追加,都要在使用之前用vbs cons...
处理文件用到的常量有:forreading = 1 ,forwriting=2,forappending=8,用于的操作分别是读/写和追加,都要在使用之前用vbs const来声明。常用于处理文本文件的方法有:read(var)—读var个字符,readline—读一行,readall—读整个文件内容,skipline—跳过本行指向下一行,write(var)—把字符串var写入文件,writeline(var)—把字符串var和换行符写入文件,writeblanklines(n)—写入n个换行符。
下面给出几个利用vbscript访问外部文件的例子:

1.创建一个新的文本文件,如果文件已经存在则报告错误:
复制代码 代码如下:

rem 在当前盘根目录下创建"测试.txt"并写入一个字符串
vbs dim fso,file,filename
vbs filename="\测试.txt"
vbs const forwriting=2
vbs set fso=createobject("scripting.filesystemobject")
if fso.fileexists(filename)=-1
vbscall call messagebox("发现错误!!!文件已经存在!!!")
goto over
endif
vbs set file=fso.createtextfile(filename,ture)
vbs file.writeline("文件第一行,这是一个测试文件")
vbs file.close
vbscall call messagebox("测试文件创建成功!!!")
rem over
endscript

2.强行写入文件覆盖原有内容:
复制代码 代码如下:

rem 在当前盘根目录下创建"测试.txt"并写入一个字符串
vbs dim fso,file,filename
vbs filename="\测试.txt"
vbs const forwriting=2
vbs set fso=createobject("scripting.filesystemobject")
if fso.fileexists(filename)=-1
vbscall call messagebox("发现错误!!!文件已经存在!!!")
goto over
endif
vbs set file=fso.createtextfile(filename,ture)
vbs file.writeline("文件第一行,这是一个测试文件")
vbs file.close
vbscall call messagebox("测试文件创建成功!!!")
rem over
endscript

3.往文件尾部追加内容:
复制代码 代码如下:

rem 往当前盘根目录下的文件"测试.txt"末尾追加一个字符串
vbs dim fso,file,filename
vbs filename="\测试.txt"
vbs const forappending=8
vbs set fso=createobject("scripting.filesystemobject")
if fso.fileexists(filename)=0
vbscall call messagebox("发现错误!!!文件不存在!!!")
goto over
endif
vbs set file=fso.opentextfile(filename,forappending)
vbs file.writeline("测试追加字符串到文件末尾")
vbs file.close
vbscall call messagebox("追加字符串到文件成功!!!")
rem over
endscript

4.读取指定文件一行
复制代码 代码如下:

rem 从当前盘根目录下的文件"测试.txt"读一行
vbs dim fso,file,filename,text
vbs filename="\测试.txt"
vbs const forreading=1
vbs set fso=createobject("scripting.filesystemobject")
if fso.fileexists(filename)=0
vbscall call messagebox("发现错误!!!文件不存在!!!")
goto over
endif
vbs set file=fso.opentextfile(filename,forreading)
vbs text=file.readline
vbs file.close
vbs text="从文件"&filename&"读取行成功!读到的字符串为:"&text
vbscall call messagebox(text)
rem over
endscript

5.从指定文件行读取2个字符
复制代码 代码如下:

rem 从当前盘根目录下的文件"测试.txt"读取2个字符
vbs dim fso,file,filename,text
vbs filename="\测试.txt"
vbs const forreading=1
vbs set fso=createobject("scripting.filesystemobject")
if fso.fileexists(filename)=0
vbscall call messagebox("发现错误!!!文件不存在!!!")
goto over
endif
vbs set file=fso.opentextfile(filename,forreading)
vbs text=file.read(2)
vbs file.close
vbs text="从文件"&filename&"读取2个字符成功!读到的字符为:"&text
vbscall call messagebox(text)
rem over
endscript

6. readall读取整个文件内容,大文件太占资源,不建议使用

//使用方法和readline近似

7.skipline跳过当前行

//使用方法是file.skipline,仅用于只读属性打开的文件

8.测试文件行结束/文件结束
a.测试行结束
判断语句
if file.atendofline=-1
...
endif
//表达式为真的时候当前指针处于行末
b.测试文件结束
判断语句
if file.atendofstream=-1
...
endif
//表达式为真的时候当前指针处于文件末

9.其他用于文件的函数或者叫方法功能有

a.file.column 返回当前列号
b.file.line 返回当前行号
c.file.fileexists(filename) 判断指定文件是否存在

最后强调一点,打开文件以后一定要记得关闭,以免发生数据错误,丢失数据。