天刀唐门pve心法2017:ASP如何对TXT格式的文件进行访问和追加内容?
因为我在做一个工厂的文档系统,要求每一次更改都要有记录。我的设想是,每一次操作都在TXT格式的日志上记录下操作概述。因此,每次添加内容都不多;不必经常读取;可以定期阅览和清理。主要问题是,
1,如何写入TXT耗费资源少
2,如何不读取内容,直接往TXT追加一行或者两行内容?
2楼写法有误,我经过修改后可以正常写入,问题是现在每次写入的内容将自动把上次的内容覆盖掉,有何解决办法?(例如,追加内容的语句是什么?指针移动到末行的语句是什么?)
代码:
dim fso,f,txtpath,info
txtpath=Server.MapPath("LOG.txt")
Set fso = Server.CreateObject("Scripting.FileSystemObject")
application.Lock()
Set f = fso.OpenTextFile(txtpath,2,True)
info="Login:"&rs("user")
f.WriteLine info
application.UnLock()
f.close
可以使用OpenTextFile的方法,实现对TXT格式的文件进行访问和追加内容
CreateTextFile 方法 | OpenAsTextStream 方法
应用于:FileSystemObject 对象
打开指定的文件并返回一个 TextStream 对象,可以通过这个对象对文件进行读、写或追加。
object.OpenTextFile(filename[, iomode[, create[, format]]])
参数
object
必选项。object 应为 FileSystemObject 的名称。
filename
必选项。指明要打开文件的字符串表达式。
iomode
可选项。可以是三个常数之一:ForReading 、 ForWriting 或 ForAppending 。
create
可选项。Boolean 值,指明当指定的 filename 不存在时是否创建新文件。如果创建新文件则值为 True ,如果不创建则为 False 。如果忽略,则不创建新文件。
format
可选项。使用三态值中的一个来指明打开文件的格式。如果忽略,那么文件将以 ASCII 格式打开。
设置
iomode 参数可以是下列设置中的任一种:
常数值描述如下:
ForReading 1 以只读方式打开文件。不能写这个文件。
ForWriting 2 以写方式打开文件
ForAppending 8 打开文件并从文件末尾开始写。
format 参数可以是下列设置中的任一种:
值 描述 如下:
TristateTrue 以 Unicode 格式打开文件。
TristateFalse 以 ASCII 格式打开文件。
TristateUseDefault 使用系统默认值打开文件。
说明
下面的代码说明了如何使用 OpenTextFile 方法打开文件并追加文本:
[JScript]
var fs, a, ForAppending;
ForAppending = 8;
fs = new ActiveXObject("Scripting.FileSystemObject");
a = fs.OpenTextFile("c:\\testfile.txt", ForAppending, false);
...
a.Close();
[VBScript]
Sub OpenTextFileTest
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("c:\testfile.txt", ForWriting, True)
f.Write "Hello world!"
f.Close
End Sub
Dim fso, f
Set fso = CreateObject(Scripting.FileSystemObject)
Set f = fso.OpenTextFile(c:\\testfile.txt, ForWriting, True)
f.Write Hello world!
f.Close
这段话,可以不过你要确认,服务器支持FSO
使用ASP操作TXT文件的方法只有一个那就使用FSO,写入使用writeline就可以了,这样耗费的资源很少,并且写入使用的是追加形式的。