来源:www.cncfan.com | 2006-9-8 | (有6565人读过)
在上述各种写入的范例中,都是使用文件打开方式OpenTextFile参数iomode都是以写入(ForWriting)设置,执行文字的写入操作。但是在使用这种写入方式时,会将文本文件的内容完全清除,然后再写入新的文字。如果只是想将新的文字加到原有的文件中,但是又想保留原有的文字时,可以将参数iomode设为ForAppending来达成这个目的。
程序范例:Ch13-08.asp
在原有的TextFile.txt文本文件中,使用TextStream对象的ForAppending自变量,将新的字符串加入到原有的文本文件中,执行结果如图16所示。
在EX13-08.asp程序执行完成之后,可以从上面的图例中清楚地看到,原有的文字内容依然存在,本范例程序只是将字符串添加到文件末尾。
程序内容
<!-- EX13-08.asp FSO 对象模式 ForAppending 自变量-执行范例 -->
<HTML>
<HEAD>
<TITLE>EX13-08.asp FSO 对象模式 ForAppending 自变量-执行范例</TITLE>
</HEAD>
<BODY>
<%
Dim Location, PathInfo, Strings
Dim fso, fs
For I = 1 To Len(Request.ServerVariables("PATH_TRANSLATED"))
If Mid(Request.ServerVariables("PATH_TRANSLATED"), I, 1) = "\" Then
Location = I
End if
Next
PathInfo = Mid(Request.ServerVariables("PATH_TRANSLATED") , 1, Location)
filename = PathInfo & "TextFile1.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set fs = fso.OpenTextFile(filename, ForAppending, True) '设置文件的写入动作使用了ForAppending自变量
Response.Write "文本文件的写入:<Br>"
Strings = "这是 ForAppending 自变量的执行范例"
fs.WriteLine Strings
Response.Write "写入的文字:" & Strings & "<Br>"
fs.Close
Set fs = Nothing
Set fso = Nothing
%>
</BODY>
</HTML>
在前面的几种范例中,都是使用写入文本文件作为范例,现在介绍如何读出文本文件的内容。文本文件的读取正如前面所介绍的,共有下列三种读取方式:
一行一行读取。
逐字读取。
整个文件读取。
ObjectName.OpentextFile(filename, ForReading, [create[,format]])
在Read范例中,将简要说明并显示重要的范例执行结果。
下面,笔者提供几种读取文字内容的范例。
范例程序:EX13-09.asp
读取TextFile.txt文件中开头的5个字符,用户可以参考EX13-10.asp范例,修改第21行语句为:
vars = fs.Read (5)
例如:希望读取TextFile.txt文件中一整行字符,可以使用下列范例程序代码:
从Text File.txt 文件中读取开头的五个字符
vars = fs.ReadLine
范例程序:EX13-10.asp
从Text File.txt 文件中读取一行文字
程序内容
01: <!-- EX13-10.asp FSO 对象模式 ReadLine -执行范例 -->
02: <HTML>
03: <HEAD>
04: <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
05: <TITLE>EX13-10.asp FSO 对象模式 ReadLine -执行范例</TITLE>
06: </HEAD>
07: <BODY>
08: <%
09: Dim Location, PathInfo, Strings
10: Dim fso, fs
11: For I = 1 To Len(Request.ServerVariables("PATH_TRANSLATED"))
12: If Mid(Request.ServerVariables("PATH_TRANSLATED"), I, 1) = "\" Then
13: Location = I
14: End if
15: Next
16: PathInfo = Mid(Request.ServerVariables("PATH_TRANSLATED") , 1, Location)
17: filename = PathInfo & "TextFile1.txt"
18: Const ForReading = 1
19: Set fso = CreateObject("Scripting.FileSystemObject")
20: Set fs = fso.OpenTextFile(filename, ForReading)
21: vars = fs.ReadLine
22: Response.Write "打开的文件为:'" & filename & "'<Br>"
23: Response.Write "读取的文字为:'" & vars & "'"
24: fs.Close
25: Set fs = Nothing
26: Set fso = Nothing
27: %>
28: </BODY>
29: </HTML>
程序说明
第21行:整行文字的读取方式。
同样,如果仅仅读取五个字符时,则应该将“vars = fs.ReadLine”改为“vars = fs.Read(5)”。
读取整个文本文件,共有两种方法可供选择。这两种方法如下所示:
ReadLine:一行一行地读取,一直到文件的结尾,需要配合AtEndOfStream属性使用。
ReadAll:读取整个文本文件的内容。
下面将分别简述这两种方法的使用。
范例程序:EX13-11.asp
使用ReadLine方法并搭配“Do…Loop”循环、AtEndOfStream属性,读取整个TextFile.txt文件。
使用ReadLine读取整个文件的执行结果如图21所示。
使用 Read Line对象,读取整个TextFile.txt 文件
程序内容
16: PathInfo = Mid(Request.ServerVariables("PATH_TRANSLATED") , 1, Location)
17: filename = PathInfo & "TextFile1.txt"
18: Const ForReading = 1
19: Set fso = CreateObject("Scripting.FileSystemObject")
20: Set fs = fso.OpenTextFile(filename, ForReading)
21: Response.Write "打开的文件为:'" & filename & "'<Br>"
22: Response.Write "读取的文字为:<Br>"
23: Do While Not fs.AtEndOfStream
24: vars = fs.ReadLine
25: Response.Write vars & "<br>"
26: Loop
程序说明
第23~26行:使用“Do…Loop”循环控制的方式,判断是否已经到达TextStream的末端。
第24行:使用ReadLine读出的整行数据存到vars变量中。
范例程序:Ex13-12.asp
使用ReadAll方法并搭配“Do…Loop”循环、AtEndOfStream属性的方式,读取整个TextFile.txt文件的内容。
ReadAll方法的执行结果如图22所示。
使用 ReadAll对象,读取整个TextFile.txt 文件内容
程序内容
16: PathInfo = Mid(Request.ServerVariables("PATH_TRANSLATED") , 1, Location)
17: filename = PathInfo & "TextFile1.txt"
18: Const ForReading = 1
19: Set fso = CreateObject("Scripting.FileSystemObject")
20: Set fs = fso.OpenTextFile(filename, ForReading)
21: Response.Write "打开的文件为:'" & filename & "'<Br>"
22: Response.Write "读取的文字为:<Br>"
23: vars = fs.Readall
24: vars = Replace(vars , Chr(10) , "<br>")
25: Response.Write vars & "<br>"
26: fs.Close
程序说明
第23行:使用ReadAll方法读取整个文件的内容字符串。
第24行:在文本文件中,使用“Chr(10)”作为换行指令,但在Web Page上却无法支持。因此,使用Replace函数,将所有的“Chr(10)”字符替换成网页换行标记“<br>”。
第25行:显示文本文件的实际内容。
|