Code programme
<%
'================================================== = =========
'Exporter les enregistrements sous forme de fichier (.csv)
'Date de production : mars 2003
'Auteur : Neige à Saibei
'================================================== = =========
Classe Export_CSV
objet système de fichiers FSO privé
fExport privé
dim Exp_Type
sous-privé Class_Initialize()
set FSO= Server.CreateObject("Scripting.FileSystemObject") 'Créer une instance d'objet de système de fichiers
Exp_Type=1 'Le type d'exportation 1 est le mode d'ajout pour écrire un fichier. 2 consiste à créer un nouveau fichier puis à écrire
fin du sous
'Fermer l'objet
sous-Class_Terminate privé ()
fExporter.Fermer
définir FSO = rien
fin du sous
'Exporter le programme principal (utiliser un tableau pour spécifier les champs)
fonction publique ExportFile (chemin complet, rsSet, HeaderArray)
si Exp_type=1 alors
sinon ExistFile (fullpath) alors
si CreateFile (chemin complet) alors
ÉcrireHeaderHeaderArray
WriteBody rsSet,En-têteArray
autre
err_Show "Une erreur s'est produite lors de la création du fichier !"
finir si
autre
si OpenFile (chemin complet) alors
WriteBody rsSet,En-têteArray
autre
err_Show "Une erreur s'est produite lors de l'ouverture du fichier !"
finir si
finir si
sinon si Exp_type=2 alors
si ExistFile (chemin complet) alors
err_Show "Conflit de nom de fichier !"
autre
si CreateFile (chemin complet) alors
ÉcrireHeaderHeaderArray
WriteBody rsSet,En-têteArray
autre
err_Show "Une erreur s'est produite lors de la création du fichier !"
finir si
finir si
finir si
si err=0 alors
ExportFile=true
autre
ExportFile=false
finir si
fonction de fin
'Écrivez le titre spécifié
sous public WriteHeader (HeaderArray)
sLigne = ""
pour i=0 à ubound(HeaderArray,2)
sLigne=sLigne & "," & HeaderArray(0,i)
suivant
si sLigne<>"" alors
sLigne=droite(sLigne,len(sLigne)-1)
fExport.WriteLine(sLine)
finir si
end sub
'Sortie des informations de champ spécifiées par le jeu d'enregistrements
sous public WriteBody (rsSet, HeaderArray)
rsSet.movefirst
Faire jusqu'à rsSet.EOF
sLigne = ""
pour i=0 à ubound(HeaderArray,2)
sLigne=sLigne & "," & rsSet(HeaderArray(1,i))
suivant
si sLigne <> "" alors
sLigne = droite(sLigne, Len(sLigne)-1)
fExport.WriteLine(sLine)
finir si
rsSet.MoveNext
Boucle
fin du sous
'Exporter le programme principal (ensemble d'enregistrements complet)
Fonction publique ExportFile2 (chemin complet, rsSet)
si Exp_type=1 alors
sinon ExistFile (fullpath) alors
si CreateFile (chemin complet) alors
WriteHeader2 rsSet
ÉcrireBody2 rsSet
autre
err_Show "Une erreur s'est produite lors de la création du fichier !"
finir si
autre
si OpenFile (chemin complet) alors
ÉcrireBody2 rsSet
autre
err_Show "Une erreur s'est produite lors de l'ouverture du fichier !"
finir si
finir si
sinon si Exp_type=2 alors
si ExistFile (chemin complet) alors
err_Show "Conflit de nom de fichier !"
autre
si CreateFile (chemin complet) alors
WriteHeader2 rsSet
ÉcrireBody2 rsSet
autre
err_Show "Une erreur s'est produite lors de la création du fichier !"
finir si
finir si
finir si
si err=0 alors
ExportFile2=true
autre
ExportFile2=faux
finir si
fonction de fin
'Écrivez le nom du champ comme titre
sous public WriteHeader2 (rsSet)
sLigne = ""
pour i=0 à rsSet.fields.count-1
sLine=sLine & "," & rsSet.fields(i).name
suivant
si sLigne<>"" alors
sLigne=droite(sLigne,len(sLigne)-1)
fExport.WriteLine(sLine)
finir si
end sub
'Informations sur l'ensemble d'enregistrements de sortie
sous public WriteBody2 (rsSet)
rsSet.movefirst
Faire jusqu'à rsSet.EOF
sLigne = ""
pour i=0 à rsSet.fields.count-1
sLine=sLine & "," & rsSet.fields(i).value
suivant
si sLigne <> "" alors
sLigne = droite(sLigne, Len(sLigne)-1)
fExport.WriteLine(sLine)
finir si
rsSet.MoveNext
Boucle
fin du sous
'Message d'erreur de sortie
sous privé Err_Show (errDesc)
Response.Write errDesc
Réponse.Fin
fin du sous
'Créer un fichier
Fonction publique CreateFile (chemin complet)
Définir fExport = FSO.CreateTextFile (FullPath, false)
si err=0 alors
CreateFile=true
autre
CreateFile = faux
finir si
fonction de fin
'Ouvrir un fichier
fonction publique OpenFile (chemin complet)
set fExport=FSO.OpenTextFile(fullPath,8,false)
si err=0 alors
Fichier Ouvert = vrai
autre
Fichier Ouvert = faux
finir si
fonction de fin
'Déterminer si le fichier portant le nom de fichier spécifié existe
fonction publique ExistFile (chemin complet)
si FSO.FileExists (fullpath) alors
FichierExiste=true
autre
FichierExiste=false
finir si
fonction de fin
finClasse
%>