프로그램 코드
<%
'================================================ = =========
'(.csv) 파일로 레코드 내보내기
'제작년월 : 2003년 3월
작가 : 사이베이의 눈
'================================================ = =========
클래스 내보내기_CSV
개인 FSO '파일 시스템 개체
비공개 fExport
희미한 Exp_Type
비공개 하위 Class_Initialize()
set FSO= Server.CreateObject("Scripting.FileSystemObject") '파일 시스템 객체 인스턴스 생성
Exp_Type=1 '내보내기 유형 1은 파일을 쓰기 위한 추가 모드이고 2는 새 파일을 생성한 후 쓰기입니다.
서브 끝
'개체를 닫습니다.
개인 하위 Class_Terminate()
f내보내기.닫기
FSO=아무것도 설정하지 않음
서브 끝
'메인 프로그램 내보내기(배열을 사용하여 필드 지정)
공개 함수 내보내기파일(fullpath,rsSet, HeaderArray)
Exp_type=1이면
ExistFile(fullpath)이 아니면
CreateFile(전체 경로)인 경우
쓰기헤더헤더배열
WriteBody rsSet,HeaderArray
또 다른
err_Show "파일을 생성하는 동안 오류가 발생했습니다!"
종료하면
또 다른
OpenFile(전체 경로)인 경우
WriteBody rsSet,HeaderArray
또 다른
err_Show "파일을 여는 중 오류가 발생했습니다!"
종료하면
종료하면
elseif Exp_type=2이면
ExistFile(전체 경로)인 경우
err_Show "파일 이름이 충돌합니다!"
또 다른
CreateFile(전체 경로)인 경우
쓰기헤더헤더배열
WriteBody rsSet,HeaderArray
또 다른
err_Show "파일을 생성하는 동안 오류가 발생했습니다!"
종료하면
종료하면
종료하면
err=0이면
내보내기파일=true
또 다른
내보내기파일=false
종료하면
함수 종료
'지정된 제목을 쓰세요
공개 하위 WriteHeader(HeaderArray)
s라인 = ""
i=0에서 ubound(HeaderArray,2)까지
sLine=sLine & "," & HeaderArray(0,i)
다음
sLine<>""이면
sLine=오른쪽(sLine,len(sLine)-1)
fExport.WriteLine(sLine)
종료하면
end sub
'레코드 세트에 지정된 필드 정보 출력
공개 하위 WriteBody(rsSet, HeaderArray)
rsSet.movefirst
rsSet.EOF까지 수행
s라인 = ""
i=0에서 ubound(HeaderArray,2)까지
sLine=sLine & "," & rsSet(HeaderArray(1,i))
다음
sLine <> ""이면
sLine = 오른쪽(sLine, Len(sLine)-1)
fExport.WriteLine(sLine)
종료하면
rsSet.MoveNext
고리
서브 끝
'메인 프로그램 내보내기(전체 레코드 세트)
공개 함수 내보내기File2(전체 경로,rsSet)
Exp_type=1이면
ExistFile(fullpath)이 아니면
CreateFile(전체 경로)인 경우
WriteHeader2 rsSet
WriteBody2 rsSet
또 다른
err_Show "파일을 생성하는 동안 오류가 발생했습니다!"
종료하면
또 다른
OpenFile(전체 경로)인 경우
WriteBody2 rsSet
또 다른
err_Show "파일을 여는 중 오류가 발생했습니다!"
종료하면
종료하면
elseif Exp_type=2이면
ExistFile(전체 경로)인 경우
err_Show "파일 이름이 충돌합니다!"
또 다른
CreateFile(전체 경로)인 경우
WriteHeader2 rsSet
WriteBody2 rsSet
또 다른
err_Show "파일을 생성하는 동안 오류가 발생했습니다!"
종료하면
종료하면
종료하면
err=0이면
내보내기파일2=true
또 다른
내보내기파일2=false
종료하면
함수 종료
'제목에 필드명을 적는다
공개 하위 WriteHeader2(rsSet)
s라인 = ""
i=0에서 rsSet.fields.count-1까지
sLine=sLine & "," & rsSet.fields(i).name
다음
sLine<>""이면
sLine=오른쪽(sLine,len(sLine)-1)
fExport.WriteLine(sLine)
종료하면
end sub
'레코드 세트 정보 출력
공개 서브 WriteBody2(rsSet)
rsSet.movefirst
rsSet.EOF까지 수행
s라인 = ""
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)
응답.errDesc 쓰기
응답.종료
서브 끝
'파일 생성
공개 함수 CreateFile(전체 경로)
fExport = FSO.CreateTextFile(FullPath, false) 설정
err=0이면
파일 생성=true
또 다른
파일 생성=false
종료하면
함수 종료
'파일 열기
공개 함수 OpenFile(전체 경로)
fExport=FSO.OpenTextFile(fullPath,8,false) 설정
err=0이면
OpenFile=참
또 다른
OpenFile=거짓
종료하면
함수 종료
'지정된 파일 이름을 가진 파일이 존재하는지 확인
공개 함수 ExistFile(전체 경로)
FSO.FileExists(전체 경로)인 경우
존재파일=true
또 다른
존재파일=false
종료하면
함수 종료
endClass
%>