고객센터 : 031-548-0481 /호스팅문의:1644-2646 /서버호스팅문의 : 070-7573-5515/ 평일근무 : 09:00~18:00 / 토/일요일, 공휴일 휴무

1:1 고객상담문의 FAQ 자동답변

나노코팅 나노엔

구매안내

  • 아티보드 2.0
  • 아티보드 3.0
  • 아티카페
  • 파일공유사이트
솔루션 > 커뮤니티 > 사용팁

사용팁|

ASP 소스 보기|아티보드3.0

  • 최백호
  • |조회수 : 2900
  • |추천수 : 0
  • |2011-11-25 오후 5:25:08

정해준 경로의 소스를 출력하는 함수를 간단하게 만들어보았습니다.

당연한 말이겠지만 같은 사이트 내의 소스만 출력이 됩니다.


 

<%
function show_source(url)
Set oFSO = Server.CreateObject("Scripting.FileSystemObject")

strFilepath = Server.Mappath(url)
Set oFile = oFSO.OpenTextFile(strFilepath, 1)

strText = oFile.ReadAll

Set oFile = nothing
Set oFSO = nothing

strText = Replace(strText, "&", "&amp;")
strText = Replace(strText, "<", "&lt;")
strText = Replace(strText, " ", "&nbsp;")
strText = Replace(strText, vbTab, "&nbsp;&nbsp;&nbsp;&nbsp;")
strText = Replace(strText, vbCrLf, "<br>")

show_source = strText
end function
%>

<code>
<%=show_source("show_source.asp")%>
</code>


 

Replace 부분에서 매번 strText 변수에 재할당하지 않고 한줄로 한번에 변환하는 것이 실행 효율이 조금 더 낫지만, 저렇게 Replace 항목이 많은 경우에는 여러줄로 나누어 보기 좋게 해주는 것이 수정을 편하게 하여 유지보수 생산성이 높아집니다.


 

<code> 태그는 코드를 화면에 출력할때 사용하는 <xmp> 태그와 유사한 동작을 합니다.

함수내에서 화면 출력에 필요한 작업을 이미 대부분 해놓은 상태이므로 코드 출력용 태그는 사실상 불필요합니다. 위의 경우는 단순히 보기 좋으라고 <code> 태그를 붙여놓은 것이므로 제거하셔도 무방합니다.


 

참고로 <code> 태그 위치에 <xmp> 태그를 대신 사용하면 사소한 문제가 하나 생기니 주의하시길 바랍니다.


 

============================================================================================================================

늦어지만 저도 답변달아 봅니다.

아래와 같이 보여지게 만들어 줍니다.


<%

Sub viewCode(codefile)
response.write "<p style=""background-color=#eeeeee;"">"
set fso = server.createobject("scripting.filesystemobject")
set f = fso.opentextfile(server.mappath(codefile),1)
allViewCode = viewHTML(f.readall)
set f = nothing
response.write codingcolor(allviewcode,"brown")
response.write "</p>"
End Sub

'Coding부분을 찾아서 Coloring함수로...
function CodingColor(strTemp,strFontColor)
Dim firstPos
Dim lastPos
Dim leftString
Dim midString
Dim rightString
Dim xmidString

firstPos =1
lastPos = 1
do until lastPos >= len(strTemp)
firstPos = instr(lastPos, strTemp, "&lt;%")
if firstPos <= 0 then
exit do
end if
lastPos = instr(firstPos, strTemp, "%&gt;")
if lastPos <= 0 then
lastPos = len(strTemp)
end if
lastPos = lastPos + len("%&gt;") - 1
leftString = left(strTemp,firstPos-1)
midString = mid(strTemp,firstPos,lastPos-firstPos+1)
rightString = mid(strTemp,lastPos+1,len(strTemp)-lastPos)
xmidString = coloring(midString)
' strTemp = leftString & xmidString & rightString
' lastPos = firstPos + len(xmidString)-1
strTemp = leftString & "<span style=color:" & strFontColor & ";>" & xmidString & "</span>" & rightString
lastPos = firstPos + len("<span style=color:" & strFontColor & ";>" & xmidString & "</span>")-1
loop

CodingColor = strTemp
end function

function coloring(strViewCode)
Dim Reservedwords
Dim aryReservedword
Dim i
Dim strFunction
Dim aryFunction

Reservedwords="AndlCalllCaselConstlDimlDolEachlElselElseIflEmptylEndlEqvlEraselErrorlExitlExplicitlFalselForlFunctionlIflImplInlIslLooplModlNextlNotlNothinglNulllOnlOptionlOrlPrivatelPubliclRandomizelReDimlResumelSelectlSetlSteplSublThenlTolTruelUntillWendlWhilelXor"
aryReservedword=split(Reservedwords,"l")
for i = 0 to ubound(aryReservedword)
strViewCode = wordReplace(strViewCode,aryReservedword(i),"blue")
next

strFunction="AnchorlArraylAsclAtnlCBoollCBytelCCurlCDatelCDbllChrlCIntlCLnglCoslCreateObjectlCSnglCStrlDatelDateAddlDateDifflDatePartlDateSeriallDateValuelDaylDictionarylDocumentlElementlErrlExplFileSystemObjectlFilterlFixlIntlFormlFormatCurrencylFormatDateTimelFormatNumberlFormatPercentlGetObjectlHexlHistorylHourlInputBoxlInStrlInstrRevlIsArraylIsDatelIsEmptylIsNulllIsNumericlIsObjectlJoinlLBoundlLCaselLeftlLenlLinklLoadPicturelLocationlLoglLTrimlRTrimlTrimlMidlMinutelMonthlMonthNamelMsgBoxlNavigatorlNowlOctlReplacelRightlRndlRoundlScriptEnginelScriptEngineBuildVersionlScriptEngineMajorVersionlScriptEngineMinorVersionlSecondlSgnlSinlSpacelSplitlSqrlStrComplStringlStrReverselTanlTimelTextStreamlTimeSeriallTimeValuelTypeNamelUBoundlUCaselVarTypelWeekdaylWeekDayNamelWindowlYear"
aryFunction=split(strFunction,"l")
for i = 0 to

댓글 0

번호 제목 닉네임 조회수 작성일

번호 : 35

카테고리별 출력하기 [2]newfile

번호 : 34

클럽 출석부 입니다. 참고 하세요!!!!!! [6]new

번호 : 33

패스코리아의 Nwmail 사용사시는분 [5]newfile

번호 : 32

페이지와 게시판 하단에 관리담당자를 표시하는 기능 추가 new

  • 일천
  • 조회수 2213
  • 2015.08.25

번호 : 31

플래시 메뉴 새로고침 안되는 버그 치료방법 [4]new

  • 웹사랑
  • 조회수 2554
  • 2006.08.11

번호 : 30

회원 로그인 설치하기 (초보자용) [8]new

번호 : 29

회원가입 및 방문기록 추출하기 [2]newfilephoto

번호 : 28

회원랭킹 소스 입니다.[별루 안좋은딩] [1]new

번호 : 27

ABC 업로드 컴포넌트 4.1 ^^ [3]newfile

  • 김통령
  • 조회수 4204
  • 2007.01.31

번호 : 26

ABC Upload 의 라이센스문제 newfile

번호 : 25

ABCUpload 컴포넌트 64Bit OS에서 사용 설정법 new

  • 일천
  • 조회수 3214
  • 2015.08.04

번호 : 24

ASP - FSO 객체 정리한 파일입니다. newfilephoto

  • 최백호
  • 조회수 3039
  • 2008.05.19

번호 : pri23

ASP 소스 보기 new

번호 : 22

ASP에서의 MD5암호화 모듈입니다. newfile

번호 : 21

Daum 우편번호 서비스를 이용하려합니다. new

번호 : 20

DB설치오류와 대처(동영상)-"sql이 없거나 액세스 할 수 없습니다" [4]newfile

번호 : 19

GeoIP 국가별 IP 체크 방법 newfile

번호 : 18

IE6설계변경패치 예제파일 및 파워포인트자료 [3]newfile

번호 : 17

IE패치로 인한 플래쉬/미디어 제대로 나오게하기!!! [2]newfile

  • 최백호
  • 조회수 3102
  • 2008.04.10

번호 : 16

iframe 크기 안에 들어가는 아티보드에 맞게 폭, 높이 자동으로 .. [2]new

  • 최백호
  • 조회수 3452
  • 2007.08.01