Código de programa
<%
'=================================================== ==========
'Exportar registros como archivo (.csv)
'Fecha de producción: marzo de 2003
'Autor: Nieve en Saibei
'=================================================== ==========
Exportación de clase_CSV
objeto de sistema de archivos FSO 'privado
exportación privada
tenue Exp_Type
sub privado Class_Initialize()
set FSO= Server.CreateObject("Scripting.FileSystemObject") 'Crear una instancia de objeto del sistema de archivos
Exp_Type=1 'El tipo de exportación 1 es el modo de agregar para escribir un archivo 2 es para crear un nuevo archivo y luego escribir
sub final
'Cierra el objeto
sub privado Class_Terminate()
fExportar.Cerrar
establecer FSO = nada
sub final
'Exportar el programa principal (usar matriz para especificar campos)
Función pública ExportFile (ruta completa, rsSet, HeaderArray)
si Exp_type=1 entonces
si no existeExistFile(ruta completa) entonces
si CreateFile (ruta completa) entonces
EscribirEncabezadoEncabezadoArray
WriteBody rsSet,EncabezadoArray
demás
err_Show "¡Ocurrió un error al crear el archivo!"
terminar si
demás
si OpenFile (ruta completa) entonces
WriteBody rsSet,EncabezadoArray
demás
err_Show "¡Se produjo un error al abrir el archivo!"
terminar si
terminar si
elseif Exp_type=2 entonces
si ExistFile (ruta completa) entonces
err_Show "¡Conflicto de nombre de archivo!"
demás
si CreateFile (ruta completa) entonces
EscribirEncabezadoEncabezadoArray
WriteBody rsSet,EncabezadoArray
demás
err_Show "¡Ocurrió un error al crear el archivo!"
terminar si
terminar si
terminar si
si err=0 entonces
Exportar archivo = verdadero
demás
Exportar archivo = falso
terminar si
función final
'Escribe el título especificado
sub público WriteHeader (HeaderArray)
Línea = ""
para i=0 a ubound(HeaderArray,2)
sLine=sLine & "," & HeaderArray(0,i)
próximo
si sLine<>"" entonces
sLine=derecha(sLine,len(sLine)-1)
fExport.WriteLine(sLínea)
terminar si
end sub
'Salida de la información de campo especificada por el conjunto de registros
sub público WriteBody (rsSet, HeaderArray)
rsSet.movefirst
Hacer hasta rsSet.EOF
Línea = ""
para i=0 a ubound(HeaderArray,2)
sLine=sLine & "," & rsSet(EncabezadoArray(1,i))
próximo
si sLine <> "" entonces
sLine = derecha(sLine, Len(sLine)-1)
fExport.WriteLine(sLínea)
terminar si
rsSet.MoveNext
Bucle
sub final
'Exportar el programa principal (conjunto completo de registros)
Función pública ExportFile2 (ruta completa, rsSet)
si Exp_type=1 entonces
si no existeExistFile(ruta completa) entonces
si CreateFile (ruta completa) entonces
WriteHeader2 rsSet
WriteBody2 rsSet
demás
err_Show "¡Ocurrió un error al crear el archivo!"
terminar si
demás
si OpenFile (ruta completa) entonces
WriteBody2 rsSet
demás
err_Show "¡Se produjo un error al abrir el archivo!"
terminar si
terminar si
elseif Exp_type=2 entonces
si ExistFile (ruta completa) entonces
err_Show "¡Conflicto de nombre de archivo!"
demás
si CreateFile (ruta completa) entonces
WriteHeader2 rsSet
WriteBody2 rsSet
demás
err_Show "¡Ocurrió un error al crear el archivo!"
terminar si
terminar si
terminar si
si err=0 entonces
ExportFile2=verdadero
demás
ExportFile2=falso
terminar si
función final
'Escribe el nombre del campo como título
sub público WriteHeader2 (rsSet)
Línea = ""
para i=0 a rsSet.fields.count-1
sLine=sLine & "," & rsSet.fields(i).nombre
próximo
si sLine<>"" entonces
sLine=derecha(sLine,len(sLine)-1)
fExport.WriteLine(sLínea)
terminar si
end sub
'Información del conjunto de registros de salida
sub pública WriteBody2 (rsSet)
rsSet.movefirst
Hacer hasta rsSet.EOF
Línea = ""
para i=0 a rsSet.fields.count-1
sLine=sLine & "," & rsSet.fields(i).valor
próximo
si sLine <> "" entonces
sLine = derecha(sLine, Len(sLine)-1)
fExport.WriteLine(sLínea)
terminar si
rsSet.MoveNext
Bucle
sub final
'Mensaje de error de salida
sub privado Err_Show (errDesc)
Respuesta.Escribir errDesc
Respuesta.Fin
sub final
'Crear un archivo
Función pública CreateFile (ruta completa)
Establecer fExport = FSO.CreateTextFile (FullPath, falso)
si err=0 entonces
Crear archivo = verdadero
demás
CrearArchivo=falso
terminar si
función final
'Abrir un archivo
Función pública OpenFile (ruta completa)
establecer fExport=FSO.OpenTextFile(fullPath,8,false)
si err=0 entonces
Abrir archivo = verdadero
demás
AbrirArchivo=falso
terminar si
función final
'Determinar si el archivo con el nombre de archivo especificado existe
función pública ExistFile (ruta completa)
si FSO.FileExists (ruta completa) entonces
ArchivoExiste=verdadero
demás
ArchivoExiste=falso
terminar si
función final
fin de clase
%>