Posted on November 2, 2010 | Posted in
编程开发 | 0 Comments Replies
嗯,今天被吩咐说往公司的网站添加一些功能。大致的意思是说现在公司的网站有一个提问模块,但提问的人不是很多,所以公司希望自己在后台作弊一下,内部人员添加数据,但如果一条一条的在网站上面添加,这种做法无疑是费时不讨好的,于是上司就吩咐说,做一个txt导入到access数据库的方法,那么只要在txt里边预先输入好数据,到时候一次过导入即可。
首先我们先要准备一份格式如下的txt文档(test.txt)
1,佛大,地址:江湾一路18号
2,佛山大学北院,地址:大沥仙溪湖畔
这里说明一下我自己的定义:第一列是排序数字,第二列是建筑物的名称,第三列是建筑物的地址
接下来就是ASP文件(do.asp)的代码了,既然和其他文档有关,那么代码用到的自然是fso组件的代码了
<%
filespec=server.mappath("/test.txt")
Const ForReading = 1
Dim fso, theFile, retstring
Set fso = CreateObject("Scripting.FileSystemObject")
Set theFile = fso.OpenTextFile(filespec, ForReading, False)
i=0
Do While theFile.AtEndOfStream <> True
session("row"&i) = theFile.ReadLine
i=i+1
Loop
theFile.Close
ReadEntireFile = retstring
for j=0 to i-1
arry=split(session("row"&j),",")
'arry(0),arry(1),arry(2)
response.write session("row"&j)+"〈br>"
next
%>
输出的结果是:
1,佛大,地址:江湾一路18号
2,佛山大学北院,地址:大沥仙溪湖畔
原理很简单
首先通过OpenTextFile方法,以只读的方式打开test.txt文档
然后通过AtEndOfStream判断指针是否到达了文档的结尾,如果没有到达结尾,就用ReadLine来循环读取文档的每一行。然后用split将每一行以“,”为分隔符转为数组,再输出就可以了。
当然我们还没有达到我们的目的,就是写入Access,其实只要加一些代码就可以实现了,参考代码如下
<%
set rs=server.createobject("adodb.recordset")
sql="select * from [table]"
rs.open sql,conn,1,3
ofile=request("file")
filespec=server.mappath(ofile)
Const ForReading = 1
Dim fso, theFile, retstring
Set fso = CreateObject("Scripting.FileSystemObject")
Set theFile = fso.OpenTextFile(filespec, ForReading, False)
i=0
Do While theFile.AtEndOfStream <> True
session("row"&i) = theFile.ReadLine
i=i+1
Loop
theFile.Close
ReadEntireFile = retstring
for j=0 to i-1
arry=split(session("row"&j),",")
rs.addnew()
rs(0)=arry(0)
rs(1)=arry(1)
rs(2)=arry(2)
rs.update()
next
rs.close
set rs=nothing
%>
TAG CLOUD
碎碎念 生活 戏曲 古风 电影 工作 网摘 动漫 wordpress asp 模版技术 静态化 编程 风华网 php 生病 优化 seo 模板 destoon