Programmcode
<%
'============================================== = =========
'Datensätze als (.csv)-Datei exportieren
„Produktionsdatum: März 2003
'Autor: Schnee in Saibei
'============================================== = =========
Klasse Export_CSV
privates FSO 'Dateisystemobjekt
privater fExport
dim Exp_Type
private sub Class_Initialize()
set FSO= Server.CreateObject("Scripting.FileSystemObject") 'Eine Dateisystemobjektinstanz erstellen
Exp_Type=1 'Exporttyp 1 ist der Anhängemodus zum Schreiben einer Datei. 2 bedeutet, eine neue Datei zu erstellen und dann zu schreiben
Ende sub
„Schließen Sie das Objekt.“
private Sub Class_Terminate()
fExport.Schließen
setze FSO=nichts
Ende sub
'Exportieren Sie das Hauptprogramm (verwenden Sie ein Array, um Felder anzugeben)
öffentliche Funktion ExportFile(fullpath,rsSet, HeaderArray)
wenn Exp_type=1 dann
wenn nicht ExistFile(fullpath), dann
wenn CreateFile(fullpath), dann
WriteHeaderHeaderArray
WriteBody rsSet,HeaderArray
anders
err_Show „Beim Erstellen der Datei ist ein Fehler aufgetreten!“
Ende wenn
anders
wenn OpenFile(fullpath), dann
WriteBody rsSet,HeaderArray
anders
err_Show „Beim Öffnen der Datei ist ein Fehler aufgetreten!“
Ende wenn
Ende wenn
elseif Exp_type=2 dann
if ExistFile(fullpath) then
err_Show „Dateinamenskonflikt!“
anders
wenn CreateFile(fullpath), dann
WriteHeaderHeaderArray
WriteBody rsSet,HeaderArray
anders
err_Show „Beim Erstellen der Datei ist ein Fehler aufgetreten!“
Ende wenn
Ende wenn
Ende wenn
wenn err=0 dann
ExportFile=true
anders
ExportFile=false
Ende wenn
Endfunktion
'Schreiben Sie den angegebenen Titel
öffentlicher Sub WriteHeader(HeaderArray)
sLine = ""
für i=0 bis ubound(HeaderArray,2)
sLine=sLine & "," & HeaderArray(0,i)
nächste
if sLine<>"" then
sLine=right(sLine,len(sLine)-1)
fExport.WriteLine(sLine)
Ende wenn
end sub
'Ausgabe der durch den Datensatz festgelegten Feldinformationen
öffentliches Sub WriteBody(rsSet, HeaderArray)
rsSet.movefirst
Tun Bis rsSet.EOF
sLine = ""
für i=0 bis ubound(HeaderArray,2)
sLine=sLine & "," & rsSet(HeaderArray(1,i))
nächste
if sLine <> "" dann
sLine = right(sLine, Len(sLine)-1)
fExport.WriteLine(sLine)
Ende wenn
rsSet.MoveNext
Schleife
Ende sub
'Hauptprogramm exportieren (vollständiger Datensatz)
öffentliche Funktion ExportFile2(fullpath,rsSet)
wenn Exp_type=1 dann
wenn nicht ExistFile(fullpath), dann
wenn CreateFile(fullpath), dann
WriteHeader2 rsSet
WriteBody2 rsSet
anders
err_Show „Beim Erstellen der Datei ist ein Fehler aufgetreten!“
Ende wenn
anders
wenn OpenFile(fullpath), dann
WriteBody2 rsSet
anders
err_Show „Beim Öffnen der Datei ist ein Fehler aufgetreten!“
Ende wenn
Ende wenn
elseif Exp_type=2 dann
if ExistFile(fullpath) then
err_Show „Dateinamenskonflikt!“
anders
wenn CreateFile(fullpath), dann
WriteHeader2 rsSet
WriteBody2 rsSet
anders
err_Show „Beim Erstellen der Datei ist ein Fehler aufgetreten!“
Ende wenn
Ende wenn
Ende wenn
wenn err=0 dann
ExportFile2=true
anders
ExportFile2=false
Ende wenn
Endfunktion
'Schreiben Sie den Feldnamen als Titel
öffentlicher Sub WriteHeader2(rsSet)
sLine = ""
für i=0 bis rsSet.fields.count-1
sLine=sLine & "," & rsSet.fields(i).name
nächste
if sLine<>"" then
sLine=right(sLine,len(sLine)-1)
fExport.WriteLine(sLine)
Ende wenn
end sub
'Datensatzinformationen ausgeben
öffentliches Sub WriteBody2(rsSet)
rsSet.movefirst
Tun Bis rsSet.EOF
sLine = ""
für i=0 bis rsSet.fields.count-1
sLine=sLine & "," & rsSet.fields(i).value
nächste
if sLine <> "" dann
sLine = right(sLine, Len(sLine)-1)
fExport.WriteLine(sLine)
Ende wenn
rsSet.MoveNext
Schleife
Ende sub
'Fehlermeldung ausgeben
privates Sub Err_Show(errDesc)
Response.Write errDesc
Antwort.Ende
Ende sub
'Erstellen Sie eine Datei
öffentliche Funktion CreateFile(fullpath)
Setze fExport = FSO.CreateTextFile(FullPath, false)
wenn err=0 dann
CreateFile=true
anders
CreateFile=false
Ende wenn
Endfunktion
„Öffne eine Datei
öffentliche Funktion OpenFile(vollständiger Pfad)
set fExport=FSO.OpenTextFile(fullPath,8,false)
wenn err=0 dann
OpenFile=true
anders
OpenFile=false
Ende wenn
Endfunktion
'Stellen Sie fest, ob die Datei mit dem angegebenen Dateinamen existiert
öffentliche Funktion ExistFile(vollständiger Pfad)
wenn FSO.FileExists(fullpath), dann
ExistFile=true
anders
ExistFile=false
Ende wenn
Endfunktion
endClass
%>