腳本編程3 關于文件的讀寫
更新時間:2007年02月25日 00:00:00 作者:
使用vbscript來讀寫文件,十分的方便,廢話少說,切入正題。
1、打開文件
使用opentextfile方法
set fs =createobject(“scripting.filesystemobject”)
set ts=fs.opentextfile(“c:\1.txt”,1,true)
注意這里需要填入文件的完整路徑,后面一個參數(shù)為訪問模式
1為forreading
2為forwriting
8為appending
第三個參數(shù)指定如果指定文件不存在,是否創(chuàng)建。
2、讀取文件
讀取文件的方法有三個
read(x)讀取x個字符
readline讀取一行
readall全部讀取
例如:
set fs =createobject(“scripting.filesystemobject”)
set ts=fs.opentextfile(“c:\1.txt”,1,true)
value=ts.read(20)
line=ts.readline
contents=ts.readall
這里還要介紹幾個指針變量:
textstream對象的atendofstream屬性。當處于文件結尾的時候這個屬性返回true.我們可以用循環(huán)檢測又沒有到達文件末尾。例如:
set fs =createobject(“scripting.filesystemobject”)
set f=fs.getfile(“c:\1.txt”,1,false)
set ts=f.openastextstream(1,0)
do while ts.atendofstream<>true
f.read(1)
loop
還有一個屬性,atendofline,如果已經(jīng)到了行末尾,這個屬性返回true.
Textstream對象還有兩個有用的屬性,column和line.
在打開一個文件后,行和列指針都被設置為1。
看一個綜合的例子吧:
*******************************read.vbs******************************
set fs =createobject(“scripting.filesystemobject”)
set f=fs.opentextfile(“c:\1.txt”,1,true)
do while f.atendofstream<>true
data=””
for a=1 to 5
if f.atendofstream<>true then
data=data+f.readline
end if
next
dataset=dataset+1
wscript.echo “data set”?。ataset & ”:” & data
loop
最后說一下在文件中跳行
skip(x) 跳過x個字符
skipline 跳過一行
用法也很簡單 和前面一樣,就不說了。
3、寫文件
可以用forwriting和forappending方式來寫
寫有3各方法:
write(x)
writeline
writeblanklines(n) 寫入n個空行
來看一個例子:
*****************************************************************
data=”hello, I like script programing”
set fs =createobject(“scripting.filesystemobject”)
if (fs.fileexists(“c:\2.txt”)) then
set f =fs.opentextfile(“c:\2.txt”,8)
f.write data
f.writeline data
f.close
else
set f=fs.opentextfile(“c:\2.txt”,2, true)
f.writeblanklines 2
f.write data
f.close
end if
注意 寫完文件以后一定要關閉?。。。。。?! 還有就是,如果要讀文件又要寫文件,讀完之后一定也要記得關閉,這樣才能以寫的方式打開。
好了 關于文件都說完了,實際運用中還有可能牽扯到關于字符串的操作。
后面的1章里面,我打算寫一點驅(qū)動器和注冊表的內(nèi)容,腳本編程內(nèi)容也很豐富,我也只講關于黑客方面的。今天好累啊,還有就是請大家不要在論壇灌水了,我每天都刪貼,這樣也不好,論壇是大家的,我每天寫一些原創(chuàng)的東西也就是為了讓我們的論壇和別的論壇有些不同,我一個人力量有限,還要靠大家的力量,我打算在論壇上找?guī)讉€人一論壇的名義一起編個軟件,這樣我們的論壇也算有點名聲。
很晚了,休息了