ASP中文本文件與數(shù)據(jù)庫(kù)文件的數(shù)據(jù)交換(FSO)
更新時(shí)間:2006年10月28日 00:00:00 作者:
ASP中文本文件與數(shù)據(jù)庫(kù)文件的數(shù)據(jù)交換
網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的應(yīng)用是WWW上一個(gè)很重要的組成部分,可以這樣說(shuō),如果缺少了數(shù)據(jù)庫(kù),網(wǎng)絡(luò)也就失去了靈魂。大家可以想象一下,如果沒(méi)有象YAHOO,SOHU等搜索引擎的話,那么在網(wǎng)上尋找一個(gè)目標(biāo)變得多么困難,大家在茫茫網(wǎng)海里變得不知所往,動(dòng)輒迷失方向。其實(shí),這些搜索引擎是網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的最典型的應(yīng)用,在ASP(Active Server Pages)技術(shù)里對(duì)數(shù)據(jù)庫(kù)的直接操作是比較多的,下面講述一種由文本文件向數(shù)據(jù)庫(kù)文件傳遞數(shù)據(jù)的方法。
這個(gè)文本文體是由終端采集傳送到服務(wù)器的一個(gè)固定目錄下,由服務(wù)器去讀取數(shù)據(jù)并存放在本機(jī)數(shù)據(jù)庫(kù)里,轉(zhuǎn)換完后刪除掉這個(gè)文本文件。這樣終端負(fù)責(zé)采集數(shù)據(jù),并按給定的格式上傳到服務(wù)器的指定目錄下,服務(wù)器端的數(shù)據(jù)庫(kù)對(duì)終端來(lái)講是完全不透明的,保障了服務(wù)器的安全,對(duì)現(xiàn)在的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)應(yīng)用來(lái)講或許有點(diǎn)幫助。
Txttolib.asp
<html>
<head>
<meta http-equiv="refresh" content="30;url=deltext.asp">
<meta http-equiv="Content-Type"
content="text/html; charset=gb_2312-80">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>[把文本文件轉(zhuǎn)換成數(shù)據(jù)庫(kù)文件]</title>
</head>
<body bgcolor="#FFFFFF">
<align="center">
<p align="center"><font color="#FF0000">正在處理數(shù)據(jù),請(qǐng)稍候!
<br>
</font><font color="#000000"><align="center"><%
str=server.mappath("/") ‘取得服務(wù)器的根目錄
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(str & "\thetext")
Set fc = f.Files
k=1
For Each f1 in fc
file(k)=f1.name ‘得到此路徑下的所有文件名
k=k+1
next
%><% ii=1%><%
set fs = CreateObject("Scripting.FileSystemObject")%><%
while ii<k
response.write file(ii) & "<br>"
set textinstance=fs.opentextfile(str & "\thetext\" & file(ii),1,false,false)‘打開(kāi)文件來(lái)讀數(shù)據(jù)
while textinstance.atendofstream<> true ‘如果文件沒(méi)有結(jié)束
visitornum=textinstance.readline ‘讀進(jìn)一行數(shù)據(jù)
j=0
cd=len(visitornum)
for i=1 to cd
if mid(visitornum,i,1)="," then ‘?dāng)?shù)據(jù)與數(shù)據(jù)之間以“,”隔開(kāi)
j=j+1
else
select case j‘分別取得各數(shù)據(jù)值
case 0
me1=me1+mid(visitornum,i,1)
case 1
me2=me2+mid(visitornum,i,1)
case 2
me3=me3+mid(visitornum,i,1)
case 3
me4=me4+mid(visitornum,i,1)
case 4
me5=me5+mid(visitornum,i,1)
case 5
me6=me6+mid(visitornum,i,1)
end select
end if
next
response.write me1 & " " & me2 & " " & me3 & " " & me4 & " " & me5 & " " & me6 & " " & "<br>"
set cn=server.createobject("adodb.connection")
cn.open "water","",""
set rs=server.createobject("adodb.recordset")
sql="select * from watertable"
rs.open sql,cn,3,3‘打開(kāi)數(shù)據(jù)庫(kù)進(jìn)行追加操作
if rs.eof=true then
on error resume next
'rs.movelast
rs.movefirst
on error resume next
end if
rs.addnew‘增加一條記錄
rs("wvalue")=me1
rs("wdate")=me2
rs("wtime")=me3
rs("zxz")=me4
rs("jdh")=me5
rs("czh")=me6
rs.update‘更新數(shù)據(jù)
rs.close
me1=""
me2=""
me3=""
me4=""
me5=""
me6=""
wend
ii=ii+1
wend %><align="center"></font><font color="#FF0000">數(shù)據(jù)處理完畢!</font>
</p>
</body>
</html>
deltext.asp
<html>
<head>
<meta http-equiv="refresh" content="30;url=txttolib.asp">
<meta http-equiv="Content-Type"
content="text/html; charset=gb_2312-80">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>[刪除文件]</title>
</head>
<body bgcolor="#FFFFFF">
<p align="center"><font color="#FF0000">正在刪除文件,請(qǐng)稍候!<br>
</font><font color="#000000"><%
dim file(50)‘定義最大文件數(shù)
str=server.mappath("/")
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(str & "\thetext\")
Set fc = f.Files
k=1
For Each f1 in fc
file(k)=f1.name
response.write file(k) & "<br>"
k=k+1
next
%><% i=1
while i<k
Set fso = CreateObject("Scripting.FileSystemObject")
fso.DeleteFile(str & "\thetext\" & file(i))
i=i+1
wend
%></font><font color="#FF0000">文件刪除完畢!</font></p>
</body>
</html>
這兩個(gè)小程序在NT4上作者都調(diào)試通過(guò)。但有幾點(diǎn)要認(rèn)清,一個(gè)是文本文件大小的規(guī)劃(文本文件的數(shù)量多少也是如此),如果數(shù)據(jù)量大,那么在轉(zhuǎn)換時(shí)的時(shí)間大小要調(diào)整;二是轉(zhuǎn)換文本文件到數(shù)據(jù)庫(kù)文件時(shí)的程序調(diào)試一定要嚴(yán)謹(jǐn),如果程序有誤,在數(shù)據(jù)轉(zhuǎn)換過(guò)程中沒(méi)有全部轉(zhuǎn)換,而后又刪除了這個(gè)文本文件,則會(huì)有所損失。所以這兩點(diǎn)一定要注意,不能馬虎。
網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的應(yīng)用是WWW上一個(gè)很重要的組成部分,可以這樣說(shuō),如果缺少了數(shù)據(jù)庫(kù),網(wǎng)絡(luò)也就失去了靈魂。大家可以想象一下,如果沒(méi)有象YAHOO,SOHU等搜索引擎的話,那么在網(wǎng)上尋找一個(gè)目標(biāo)變得多么困難,大家在茫茫網(wǎng)海里變得不知所往,動(dòng)輒迷失方向。其實(shí),這些搜索引擎是網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的最典型的應(yīng)用,在ASP(Active Server Pages)技術(shù)里對(duì)數(shù)據(jù)庫(kù)的直接操作是比較多的,下面講述一種由文本文件向數(shù)據(jù)庫(kù)文件傳遞數(shù)據(jù)的方法。
這個(gè)文本文體是由終端采集傳送到服務(wù)器的一個(gè)固定目錄下,由服務(wù)器去讀取數(shù)據(jù)并存放在本機(jī)數(shù)據(jù)庫(kù)里,轉(zhuǎn)換完后刪除掉這個(gè)文本文件。這樣終端負(fù)責(zé)采集數(shù)據(jù),并按給定的格式上傳到服務(wù)器的指定目錄下,服務(wù)器端的數(shù)據(jù)庫(kù)對(duì)終端來(lái)講是完全不透明的,保障了服務(wù)器的安全,對(duì)現(xiàn)在的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)應(yīng)用來(lái)講或許有點(diǎn)幫助。
Txttolib.asp
<html>
<head>
<meta http-equiv="refresh" content="30;url=deltext.asp">
<meta http-equiv="Content-Type"
content="text/html; charset=gb_2312-80">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>[把文本文件轉(zhuǎn)換成數(shù)據(jù)庫(kù)文件]</title>
</head>
<body bgcolor="#FFFFFF">
<align="center">
<p align="center"><font color="#FF0000">正在處理數(shù)據(jù),請(qǐng)稍候!
<br>
</font><font color="#000000"><align="center"><%
str=server.mappath("/") ‘取得服務(wù)器的根目錄
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(str & "\thetext")
Set fc = f.Files
k=1
For Each f1 in fc
file(k)=f1.name ‘得到此路徑下的所有文件名
k=k+1
next
%><% ii=1%><%
set fs = CreateObject("Scripting.FileSystemObject")%><%
while ii<k
response.write file(ii) & "<br>"
set textinstance=fs.opentextfile(str & "\thetext\" & file(ii),1,false,false)‘打開(kāi)文件來(lái)讀數(shù)據(jù)
while textinstance.atendofstream<> true ‘如果文件沒(méi)有結(jié)束
visitornum=textinstance.readline ‘讀進(jìn)一行數(shù)據(jù)
j=0
cd=len(visitornum)
for i=1 to cd
if mid(visitornum,i,1)="," then ‘?dāng)?shù)據(jù)與數(shù)據(jù)之間以“,”隔開(kāi)
j=j+1
else
select case j‘分別取得各數(shù)據(jù)值
case 0
me1=me1+mid(visitornum,i,1)
case 1
me2=me2+mid(visitornum,i,1)
case 2
me3=me3+mid(visitornum,i,1)
case 3
me4=me4+mid(visitornum,i,1)
case 4
me5=me5+mid(visitornum,i,1)
case 5
me6=me6+mid(visitornum,i,1)
end select
end if
next
response.write me1 & " " & me2 & " " & me3 & " " & me4 & " " & me5 & " " & me6 & " " & "<br>"
set cn=server.createobject("adodb.connection")
cn.open "water","",""
set rs=server.createobject("adodb.recordset")
sql="select * from watertable"
rs.open sql,cn,3,3‘打開(kāi)數(shù)據(jù)庫(kù)進(jìn)行追加操作
if rs.eof=true then
on error resume next
'rs.movelast
rs.movefirst
on error resume next
end if
rs.addnew‘增加一條記錄
rs("wvalue")=me1
rs("wdate")=me2
rs("wtime")=me3
rs("zxz")=me4
rs("jdh")=me5
rs("czh")=me6
rs.update‘更新數(shù)據(jù)
rs.close
me1=""
me2=""
me3=""
me4=""
me5=""
me6=""
wend
ii=ii+1
wend %><align="center"></font><font color="#FF0000">數(shù)據(jù)處理完畢!</font>
</p>
</body>
</html>
deltext.asp
<html>
<head>
<meta http-equiv="refresh" content="30;url=txttolib.asp">
<meta http-equiv="Content-Type"
content="text/html; charset=gb_2312-80">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>[刪除文件]</title>
</head>
<body bgcolor="#FFFFFF">
<p align="center"><font color="#FF0000">正在刪除文件,請(qǐng)稍候!<br>
</font><font color="#000000"><%
dim file(50)‘定義最大文件數(shù)
str=server.mappath("/")
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(str & "\thetext\")
Set fc = f.Files
k=1
For Each f1 in fc
file(k)=f1.name
response.write file(k) & "<br>"
k=k+1
next
%><% i=1
while i<k
Set fso = CreateObject("Scripting.FileSystemObject")
fso.DeleteFile(str & "\thetext\" & file(i))
i=i+1
wend
%></font><font color="#FF0000">文件刪除完畢!</font></p>
</body>
</html>
這兩個(gè)小程序在NT4上作者都調(diào)試通過(guò)。但有幾點(diǎn)要認(rèn)清,一個(gè)是文本文件大小的規(guī)劃(文本文件的數(shù)量多少也是如此),如果數(shù)據(jù)量大,那么在轉(zhuǎn)換時(shí)的時(shí)間大小要調(diào)整;二是轉(zhuǎn)換文本文件到數(shù)據(jù)庫(kù)文件時(shí)的程序調(diào)試一定要嚴(yán)謹(jǐn),如果程序有誤,在數(shù)據(jù)轉(zhuǎn)換過(guò)程中沒(méi)有全部轉(zhuǎn)換,而后又刪除了這個(gè)文本文件,則會(huì)有所損失。所以這兩點(diǎn)一定要注意,不能馬虎。
您可能感興趣的文章:
- php中關(guān)于codeigniter的xmlrpc的類(lèi)在進(jìn)行數(shù)據(jù)交換時(shí)的類(lèi)型問(wèn)題
- Flash與后臺(tái)數(shù)據(jù)交換方法整理
- 使用JavaScript構(gòu)建JSON格式字符串實(shí)現(xiàn)步驟
- 前后臺(tái)交互過(guò)程中json格式如何解析以及如何生成
- PHP json格式和js json格式 js跨域調(diào)用實(shí)現(xiàn)代碼
- asp.net中各種類(lèi)型的JSON格式化
- jQuery asp.net 用json格式返回自定義對(duì)象
- asp.net轉(zhuǎn)出json格式客戶端顯示時(shí)間
- 在.NET使用JSON作為數(shù)據(jù)交換格式實(shí)例演示
相關(guān)文章
vithink小文件自動(dòng)實(shí)現(xiàn)文件瀏覽下載
vithink小文件自動(dòng)實(shí)現(xiàn)文件瀏覽下載...2006-10-10使用FSO把文本信息導(dǎo)入數(shù)據(jù)庫(kù)
使用FSO把文本信息導(dǎo)入數(shù)據(jù)庫(kù)...2006-10-10關(guān)于用ADO STREAM做的無(wú)組件上傳程序簡(jiǎn)單介紹
關(guān)于用ADO STREAM做的無(wú)組件上傳程序簡(jiǎn)單介紹...2006-10-10用asp實(shí)現(xiàn)的代碼批量修改程序,fso相關(guān)
用asp實(shí)現(xiàn)的代碼批量修改程序,fso相關(guān)...2006-10-10