使用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) 判断指定文件是否存在
最后强调一点,打开文件以后一定要记得关闭,以免发生数据错误,丢失数据。
下面给出几个利用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) 判断指定文件是否存在
最后强调一点,打开文件以后一定要记得关闭,以免发生数据错误,丢失数据。