プログラムコード
<%
'================================================ = =========
' レコードを (.csv) ファイルとしてエクスポート
'製造日: 2003 年 3 月
作者:彩北の雪
'================================================ = =========
クラスエクスポート_CSV
プライベート FSO 'ファイル システム オブジェクト
プライベート fExport
dim Exp_Type
private sub Class_Initialize()
set FSO= Server.CreateObject("Scripting.FileSystemObject") 'ファイル システム オブジェクト インスタンスを作成します
Exp_Type=1 'エクスポート タイプ 1 はファイルを書き込む追加モードです 2 は新しいファイルを作成してから書き込みます
エンドサブ
'オブジェクトを閉じます
プライベートサブ Class_Terminate()
fエクスポート.閉じる
FSO=何も設定しない
エンドサブ
'メインプログラムをエクスポートします(配列を使用してフィールドを指定します)
public Function ExportFile(フルパス、rsSet、HeaderArray)
Exp_type=1 の場合
ExistFile(フルパス)でない場合は、
CreateFile(フルパス)の場合
書き込みヘッダヘッダ配列
WriteBody rsSet、HeaderArray
それ以外
err_Show "ファイルの作成中にエラーが発生しました!"
終了する場合
それ以外
OpenFile(フルパス)の場合
WriteBody rsSet、HeaderArray
それ以外
err_Show "ファイルを開くときにエラーが発生しました!"
終了する場合
終了する場合
elseif Exp_type=2 then
ExistFile(フルパス)の場合
err_Show "ファイル名が競合しています!"
それ以外
CreateFile(フルパス)の場合
書き込みヘッダヘッダ配列
WriteBody rsSet、HeaderArray
それ以外
err_Show "ファイルの作成中にエラーが発生しました!"
終了する場合
終了する場合
終了する場合
err=0 の場合
エクスポートファイル=true
それ以外
エクスポートファイル=false
終了する場合
終了関数
'指定されたタイトルを書き込みます
public sub WriteHeader(HeaderArray)
sLine = ""
i=0 から ubound(HeaderArray,2) の場合
sLine=sLine & "," & HeaderArray(0,i)
次
if sLine<>"" then
sLine=right(sLine,len(sLine)-1)
fExport.WriteLine(sLine)
終了する場合
end sub
'レコードセットで指定されたフィールド情報の出力
public sub WriteBody(rsSet, HeaderArray)
rsSet.movefirst
rsSet.EOF まで実行する
sLine = ""
i=0 から ubound(HeaderArray,2) の場合
sLine=sLine & "," & rsSet(HeaderArray(1,i))
次
if sLine <> "" then
sLine = right(sLine, Len(sLine)-1)
fExport.WriteLine(sLine)
終了する場合
rsSet.MoveNext
ループ
エンドサブ
'メインプログラム(完全なレコードセット)をエクスポートします
public Function ExportFile2(フルパス,rsSet)
Exp_type=1 の場合
ExistFile(フルパス)でない場合は、
CreateFile(フルパス)の場合
WriteHeader2 rsSet
WriteBody2 rsSet
それ以外
err_Show "ファイルの作成中にエラーが発生しました!"
終了する場合
それ以外
OpenFile(フルパス)の場合
WriteBody2 rsSet
それ以外
err_Show "ファイルを開くときにエラーが発生しました!"
終了する場合
終了する場合
elseif Exp_type=2 then
ExistFile(フルパス)の場合
err_Show "ファイル名が競合しています!"
それ以外
CreateFile(フルパス)の場合
WriteHeader2 rsSet
WriteBody2 rsSet
それ以外
err_Show "ファイルの作成中にエラーが発生しました!"
終了する場合
終了する場合
終了する場合
err=0 の場合
エクスポートファイル2=true
それ以外
エクスポートファイル2=false
終了する場合
終了関数
'フィールド名をタイトルとして書き込みます
public sub WriteHeader2(rsSet)
sLine = ""
i=0 から rsSet.fields.count-1 の場合
sLine=sLine & "," & rsSet.fields(i).name
次
if sLine<>"" then
sLine=right(sLine,len(sLine)-1)
fExport.WriteLine(sLine)
終了する場合
end sub
'レコードセット情報を出力します
パブリックサブWriteBody2(rsSet)
rsSet.movefirst
rsSet.EOF まで実行する
sLine = ""
i=0 から rsSet.fields.count-1 の場合
sLine=sLine & "," & rsSet.fields(i).value
次
if sLine <> "" then
sLine = right(sLine, Len(sLine)-1)
fExport.WriteLine(sLine)
終了する場合
rsSet.MoveNext
ループ
エンドサブ
'エラーメッセージを出力
プライベートサブ Err_Show(errDesc)
Response.Write errDesc
応答.終了
エンドサブ
'ファイルを作成する
パブリック関数 CreateFile(フルパス)
fExport = FSO.CreateTextFile(FullPath, false) を設定します。
err=0 の場合
ファイルの作成=true
それ以外
ファイルの作成=false
終了する場合
終了関数
'ファイルを開く
public 関数 OpenFile(フルパス)
set fExport=FSO.OpenTextFile(fullPath,8,false)
err=0 の場合
OpenFile=true
それ以外
OpenFile=false
終了する場合
終了関数
'指定されたファイル名のファイルが存在するかどうかを判定する
パブリック関数 ExistFile(フルパス)
FSO.FileExists(フルパス)の場合
存在ファイル=true
それ以外
存在ファイル=false
終了する場合
終了関数
終了クラス
%>