程序代碼
<%
'==========================================================
'將紀錄輸出為(.csv)文件
'制作日期:2003年3月
'作者 :塞北的雪
'==========================================================
Class Export_CSV
PRivate fso '文件系統對象
private fExport
dim Exp_Type
private sub Class_Initialize()
set FSO= Server.CreateObject("Scripting.FileSystemObject") '建立文件系統對象實例
Exp_Type=1 '導出類型 1為追加方式寫入一個文件 2為新建一個新文件再寫入
end sub
'關閉對象
private sub Class_Terminate()
fExport.Close
set FSO=nothing
end sub
'導出主程序(用數組指定字段)
public Function ExportFile(fullpath,rsset, HeaderArray)
if Exp_type=1 then
if not ExistFile(fullpath) then
if CreateFile(fullpath) then
WriteHeader HeaderArray
WriteBody rsSet,HeaderArray
else
err_Show "創建文件時發生錯誤!"
end if
else
if OpenFile(fullpath) then
WriteBody rsSet,HeaderArray
else
err_Show "打開文件時發生錯誤!"
end if
end if
elseif Exp_type=2 then
if ExistFile(fullpath) then
err_Show "文件名沖突!"
else
if CreateFile(fullpath) then
WriteHeader HeaderArray
WriteBody rsSet,HeaderArray
else
err_Show "創建文件時發生錯誤!"
end if
end if
end if
if err=0 then
ExportFile=true
else
ExportFile=false
end if
end function
'指定的標題書寫
public sub WriteHeader( HeaderArray)
sLine = ""
for i=0 to ubound(HeaderArray,2)
sLine=sLine & "," & HeaderArray(0,i)
next
if sLine<>"" then
sLine=right(sLine,len(sLine)-1)
fExport.WriteLine(sLine)
end if
end sub
'記錄集指定的字段信息輸出
public sub WriteBody(rsSet, HeaderArray)
rsSet.movefirst
Do Until rsSet.EOF
sLine = ""
for i=0 to ubound(HeaderArray,2)
sLine=sLine & "," & rsSet(HeaderArray(1,i))
next
if sLine <> "" then
sLine = right(sLine, Len(sLine)-1)
fExport.WriteLine(sLine)
end if
rsSet.MoveNext
Loop
end sub
'導出主程序(完全記錄集)
public Function ExportFile2(fullpath,rsSet)
if Exp_type=1 then
if not ExistFile(fullpath) then
if CreateFile(fullpath) then
WriteHeader2 rsSet
WriteBody2 rsSet
else
err_Show "創建文件時發生錯誤!"
end if
else
if OpenFile(fullpath) then
WriteBody2 rsSet
else
err_Show "打開文件時發生錯誤!"
end if
end if
elseif Exp_type=2 then
if ExistFile(fullpath) then
err_Show "文件名沖突!"
else
if CreateFile(fullpath) then
WriteHeader2 rsSet
WriteBody2 rsSet
else
err_Show "創建文件時發生錯誤!"
end if
end if
end if
if err=0 then
ExportFile2=true
else
ExportFile2=false
end if
end function
'以字段名為標題書寫
public sub WriteHeader2(rsSet)
sLine = ""
for i=0 to rsSet.fIElds.count-1
sLine=sLine & "," & rsSet.fIElds(i).name
next
if sLine<>"" then
sLine=right(sLine,len(sLine)-1)
fExport.WriteLine(sLine)
end if
end sub
'輸出記錄集中信息
public sub WriteBody2(rsSet)
rsSet.movefirst
Do Until rsSet.EOF
sLine = ""
for i=0 to rsSet.fIElds.count-1
sLine=sLine & "," & rsSet.fIElds(i).value
next
if sLine <> "" then
sLine = right(sLine, Len(sLine)-1)
fExport.WriteLine(sLine)
end if
rsSet.MoveNext
Loop
end sub
'輸出錯誤信息
private sub Err_Show(errDesc)
Response.Write errDesc
Response.End
end sub
'創建一個文件
public Function CreateFile(fullpath)
Set fExport = FSO.CreateTextFile(FullPath, false)
if err=0 then
CreateFile=true
else
CreateFile=false
end if
end function
'打開一個文件
public Function OpenFile(fullpath)
set fExport=FSO.OpenTextFile(fullPath,8,false)
if err=0 then
OpenFile=true
else
OpenFile=false
end if
end function
'判斷指定文件名的文件是否存在
public function ExistFile(fullpath)
if FSO.FileExists(fullpath) then
ExistFile=true
else
ExistFile=false
end if
end function
end Class
%>