Código do programa
<%
'================================================ ==========
'Exportar registros como arquivo (.csv)
'Data de produção: março de 2003
'Autor: Neve em Saibei
'================================================ ==========
Classe Exportar_CSV
private FSO 'Objeto do sistema de arquivos
exportação privada
dim Exp_Type
sub privado Class_Initialize()
set FSO= Server.CreateObject("Scripting.FileSystemObject") 'Cria uma instância de objeto do sistema de arquivos
Exp_Type=1 'O tipo de exportação 1 é o modo de acréscimo para gravar um arquivo 2 é criar um novo arquivo e depois gravar
final sub
'Fecha o objeto
subclasse_Terminate() privada
fExportar.Fechar
definir FSO = nada
final sub
'Exporta o programa principal (use array para especificar campos)
Função pública ExportFile (caminho completo, rsSet, HeaderArray)
se Exp_type=1 então
se não ExistFile(caminho completo) então
se CreateFile(caminho completo) então
WriteHeaderHeaderArray
WriteBody rsSet,HeaderArray
outro
err_Show "Ocorreu um erro ao criar o arquivo!"
terminar se
outro
se OpenFile(caminho completo) então
WriteBody rsSet,HeaderArray
outro
err_Show "Ocorreu um erro ao abrir o arquivo!"
terminar se
terminar se
elseif Exp_type=2 então
se ExistFile(caminho completo) então
err_Show "Conflito de nome de arquivo!"
outro
se CreateFile(caminho completo) então
WriteHeaderHeaderArray
WriteBody rsSet,HeaderArray
outro
err_Show "Ocorreu um erro ao criar o arquivo!"
terminar se
terminar se
terminar se
se errar = 0 então
ExportarArquivo = verdadeiro
outro
ExportarArquivo=falso
terminar se
função final
'Escreve o título especificado
sub público WriteHeader(HeaderArray)
sLinha = ""
para i=0 para ubound(HeaderArray,2)
sLine=sLine & "," & HeaderArray(0,i)
próximo
se sLine<>"" então
sLine=direita(sLine,len(sLine)-1)
fExport.WriteLine(sLine)
terminar se
end sub
'Saída de informações de campo especificadas pelo conjunto de registros
sub público WriteBody (rsSet, HeaderArray)
rsSet.movefirst
Faça até rsSet.EOF
sLinha = ""
para i=0 para ubound(HeaderArray,2)
sLine=sLine & "," & rsSet(HeaderArray(1,i))
próximo
se sLine <> "" então
sLine = direita(sLine, Len(sLine)-1)
fExport.WriteLine(sLine)
terminar se
rsSet.MoveNext
Laço
final sub
'Exporta o programa principal (conjunto completo de registros)
Função pública ExportFile2 (caminho completo, rsSet)
se Exp_type=1 então
se não ExistFile(caminho completo) então
se CreateFile(caminho completo) então
WriteHeader2 rsSet
WriteBody2 rsSet
outro
err_Show "Ocorreu um erro ao criar o arquivo!"
terminar se
outro
se OpenFile(caminho completo) então
WriteBody2 rsSet
outro
err_Show "Ocorreu um erro ao abrir o arquivo!"
terminar se
terminar se
elseif Exp_type=2 então
se ExistFile(caminho completo) então
err_Show "Conflito de nome de arquivo!"
outro
se CreateFile(caminho completo) então
WriteHeader2 rsSet
WriteBody2 rsSet
outro
err_Show "Ocorreu um erro ao criar o arquivo!"
terminar se
terminar se
terminar se
se errar = 0 então
ExportFile2 = verdadeiro
outro
ArquivoExport2=falso
terminar se
função final
'Escreve o nome do campo como título
sub público WriteHeader2 (rsSet)
sLinha = ""
para i=0 para rsSet.fields.count-1
sLine=sLine & "," & rsSet.fields(i).name
próximo
se sLine<>"" então
sLine=direita(sLine,len(sLine)-1)
fExport.WriteLine(sLine)
terminar se
end sub
'Informações do conjunto de registros de saída
sub público WriteBody2 (rsSet)
rsSet.movefirst
Faça até rsSet.EOF
sLinha = ""
para i=0 para rsSet.fields.count-1
sLine=sLine & "," & rsSet.fields(i).value
próximo
se sLine <> "" então
sLine = direita(sLine, Len(sLine)-1)
fExport.WriteLine(sLine)
terminar se
rsSet.MoveNext
Laço
final sub
'Mensagem de erro de saída
sub privado Err_Show(errDesc)
Resposta.Write errDesc
Resposta.Fim
final sub
'Cria um arquivo
Função pública CreateFile (caminho completo)
Definir fExport = FSO.CreateTextFile(FullPath, false)
se errar = 0 então
CriarArquivo=true
outro
CriarArquivo=falso
terminar se
função final
'Abra um arquivo
Função pública OpenFile (caminho completo)
definir fExport=FSO.OpenTextFile(fullPath,8,false)
se errar = 0 então
OpenFile = verdadeiro
outro
OpenFile=falso
terminar se
função final
'Determina se o arquivo com o nome especificado existe
função pública ExistFile (caminho completo)
se FSO.FileExists(caminho completo) então
ExistFile = verdadeiro
outro
ExistFile=falso
terminar se
função final
classe final
%>