รหัสโปรแกรม
<%
'=================================================' = =========
'ส่งออกบันทึกเป็นไฟล์ (.csv)
'วันที่ผลิต: มีนาคม 2546
ผู้เขียน: หิมะใน Saibei
'=================================================' = =========
คลาส Export_CSV
FSO ส่วนตัว 'วัตถุระบบไฟล์
fExport ส่วนตัว
สลัว Exp_Type
ส่วนตัวย่อย Class_Initialize()
set FSO= Server.CreateObject("Scripting.FileSystemObject") 'สร้างอินสแตนซ์วัตถุระบบไฟล์
Exp_Type=1 'ประเภทการส่งออก 1 เป็นโหมดการผนวกเพื่อเขียนไฟล์ 2 คือการสร้างไฟล์ใหม่แล้วจึงเขียน
จบย่อย
'ปิดวัตถุ
Class_Terminate ย่อยส่วนตัว ()
fส่งออกปิด
ตั้งค่า FSO=ไม่มีอะไร
จบย่อย
'ส่งออกโปรแกรมหลัก (ใช้อาร์เรย์เพื่อระบุฟิลด์)
ฟังก์ชั่นสาธารณะ ExportFile (fullpath, rsSet, HeaderArray)
ถ้า Exp_type=1 แล้ว
ถ้าไม่ใช่ ExistFile(fullpath) แล้ว
ถ้า CreateFile(fullpath) แล้ว
เขียน HeaderHeaderArray
WriteBody rsSet,HeaderArray
อื่น
err_Show "เกิดข้อผิดพลาดขณะสร้างไฟล์!"
สิ้นสุดถ้า
อื่น
ถ้า OpenFile(fullpath) แล้ว
WriteBody rsSet,HeaderArray
อื่น
err_Show "เกิดข้อผิดพลาดขณะเปิดไฟล์!"
สิ้นสุดถ้า
สิ้นสุดถ้า
elseif Exp_type=2 แล้ว
ถ้า ExistFile(fullpath) แล้ว
err_Show "ชื่อไฟล์ขัดแย้งกัน!"
อื่น
ถ้า CreateFile(fullpath) แล้ว
เขียน HeaderHeaderArray
WriteBody rsSet,HeaderArray
อื่น
err_Show "เกิดข้อผิดพลาดขณะสร้างไฟล์!"
สิ้นสุดถ้า
สิ้นสุดถ้า
สิ้นสุดถ้า
ถ้า err=0 แล้ว
ส่งออกไฟล์=true
อื่น
ส่งออกไฟล์=false
สิ้นสุดถ้า
ฟังก์ชั่นสิ้นสุด
'เขียนชื่อที่ระบุ
WriteHeader ย่อยสาธารณะ (HeaderArray)
สไลน์ = ""
สำหรับ i=0 ถึง ubound(HeaderArray,2)
sLine=sLine & "," & HeaderArray(0,i)
ต่อไป
ถ้า sLine<>"" แล้ว
sLine=right(sLine,len(sLine)-1)
fExport.WriteLine (sLine)
สิ้นสุดถ้า
end sub
'ผลลัพธ์ของข้อมูลฟิลด์ที่ระบุโดยชุดบันทึก
WriteBody ย่อยสาธารณะ (rsSet, HeaderArray)
rsSet.movefirst
ทำจนกระทั่ง rsSet.EOF
สไลน์ = ""
สำหรับ i=0 ถึง ubound(HeaderArray,2)
sLine=sLine & "," & rsSet(HeaderArray(1,i))
ต่อไป
ถ้า sLine <> "" แล้ว
sLine = ขวา(sLine, Len(sLine)-1)
fExport.WriteLine (sLine)
สิ้นสุดถ้า
rsSet.MoveNext
วนซ้ำ
จบย่อย
'ส่งออกโปรแกรมหลัก (ชุดบันทึกที่สมบูรณ์)
ฟังก์ชั่นสาธารณะ ExportFile2 (fullpath, rsSet)
ถ้า Exp_type=1 แล้ว
ถ้าไม่ใช่ ExistFile(fullpath) แล้ว
ถ้า CreateFile(fullpath) แล้ว
WriteHeader2 rsSet
WriteBody2 rsSet
อื่น
err_Show "เกิดข้อผิดพลาดขณะสร้างไฟล์!"
สิ้นสุดถ้า
อื่น
ถ้า OpenFile(fullpath) แล้ว
WriteBody2 rsSet
อื่น
err_Show "เกิดข้อผิดพลาดขณะเปิดไฟล์!"
สิ้นสุดถ้า
สิ้นสุดถ้า
elseif Exp_type=2 แล้ว
ถ้า ExistFile(fullpath) แล้ว
err_Show "ชื่อไฟล์ขัดแย้งกัน!"
อื่น
ถ้า CreateFile(fullpath) แล้ว
WriteHeader2 rsSet
WriteBody2 rsSet
อื่น
err_Show "เกิดข้อผิดพลาดขณะสร้างไฟล์!"
สิ้นสุดถ้า
สิ้นสุดถ้า
สิ้นสุดถ้า
ถ้า err=0 แล้ว
ส่งออกไฟล์2=true
อื่น
ส่งออกไฟล์2=เท็จ
สิ้นสุดถ้า
ฟังก์ชั่นสิ้นสุด
'เขียนชื่อฟิลด์เป็นชื่อเรื่อง
สาธารณะย่อย WriteHeader2 (rsSet)
สไลน์ = ""
สำหรับ i=0 ถึง rsSet.fields.count-1
sLine=sLine & "," & rsSet.fields(i).name
ต่อไป
ถ้า sLine<>"" แล้ว
sLine=right(sLine,len(sLine)-1)
fExport.WriteLine (sLine)
สิ้นสุดถ้า
สิ้นสุดย่อย
'ข้อมูลชุดบันทึกเอาท์พุต
สาธารณะย่อย WriteBody2 (rsSet)
rsSet.movefirst
ทำจนกระทั่ง rsSet.EOF
สไลน์ = ""
สำหรับ i=0 ถึง rsSet.fields.count-1
sLine=sLine & "," & rsSet.fields(i).value
ต่อไป
ถ้า sLine <> "" แล้ว
sLine = ขวา(sLine, Len(sLine)-1)
fExport.WriteLine (sLine)
สิ้นสุดถ้า
rsSet.MoveNext
วนซ้ำ
จบย่อย
'ข้อความแสดงข้อผิดพลาดเอาต์พุต
ส่วนตัวย่อย Err_Show (errDesc)
ตอบกลับ เขียนผิดDesc
การตอบสนองสิ้นสุด
จบย่อย
'สร้างไฟล์
ฟังก์ชั่นสาธารณะ CreateFile (fullpath)
ตั้งค่า fExport = FSO.CreateTextFile (FullPath, false)
ถ้า err=0 แล้ว
CreateFile=true
อื่น
CreateFile=false
สิ้นสุดถ้า
ฟังก์ชั่นสิ้นสุด
'เปิดไฟล์
ฟังก์ชั่นสาธารณะ OpenFile (fullpath)
ตั้งค่า fExport = FSO.OpenTextFile (fullPath, 8, false)
ถ้า err=0 แล้ว
OpenFile=true
อื่น
OpenFile=เท็จ
สิ้นสุดถ้า
ฟังก์ชั่นสิ้นสุด
'ตรวจสอบว่ามีไฟล์ตามชื่อไฟล์ที่ระบุหรือไม่'
ฟังก์ชั่นสาธารณะ ExistFile (fullpath)
ถ้า FSO.FileExists(fullpath) แล้ว
ไฟล์ที่มีอยู่=true
อื่น
ExistFile=false
สิ้นสุดถ้า
ฟังก์ชั่นสิ้นสุด
สิ้นสุดคลาส
-