ASP > Tip&Tech > asp 배열, print_r , print_r_2 배열 키와 값 찍어주는 함수
 
ASP
Library
Tip&Tech
Q&A
태요닷넷 Asp, Asp.net
Tip&Tech
  HOME > ASP > Tip&Tech
 
작성일 : 11-06-22 11:31
asp 배열, print_r , print_r_2 배열 키와 값 찍어주는 함수
 글쓴이 : 덩벙이 (211.♡.155.10)
조회 : 9,475   추천 : 0   비추천 : 0  

PHP에는 변수의 내용을 쉽게 볼 수 있는 print_r 이란 함수가 있다. 변수형태와 상관없이 변수명만 인자로 넘겨주면 변수에 저장된 내용을 재귀적으로 표시해 줘서 디버깅시 특히 요긴하게 쓸 수 있다. ASP에서는 안타깝게도 유사한 함수가 없어서 비슷한 기능을 하는 함수를 만들어 봤다.


<%   

  1. Sub print_r(var)   
  2.     Dim myPrint   
  3.   
  4.     Set myPrint = New clsPrint   
  5.     myPrint.print var, 0   
  6. End Sub  
  7.   
  8. Class clsPrint   
  9.     Public Sub print(var, nIndent)   
  10.         Dim nType, sTypeName   
  11.            
  12.         'Response.Write TypeName(var)   
  13.   
  14.         nType = VarType(var)   
  15.         Select Case nType   
  16.         Case 0:   
  17.             Response.Write "(vbEmpty)"  
  18.         Case 1:   
  19.             Response.Write "(vbNull)"  
  20.         Case 2:   
  21.             Response.Write var & "(vbIngerger)"  
  22.         Case 3:   
  23.             Response.Write var & "(vbLong)"  
  24.         Case 4,5:   
  25.             Response.Write var & "(vbSingle)"  
  26.         Case 6:   
  27.             Response.Write var & "(vbCurrency)"  
  28.         Case 7:   
  29.             Response.Write var & "(vbDate)"  
  30.         Case 8:   
  31.             Response.Write var & "(vbString)"  
  32.         Case 9:'vbObject   
  33.             sTypeName = TypeName(var)   
  34.             Select Case sTypeName   
  35.             Case "ISessionObject"'Session   
  36.                 print_session var, nIndent   
  37.             Case "IRequest"'Request   
  38.                 print_request var, nIndent   
  39.             Case "IApplicationObject"'Application   
  40.                 print_application var, nIndent   
  41.             Case Else  
  42.                 Response.Write "Unimpleneted TypeName:" & sTypeName   
  43.             End Select  
  44.         Case 10:   
  45.             Response.Write "(vbError)"  
  46.         Case 11:   
  47.             Response.Write var & "(vbBoolean)"  
  48.         Case 12:   
  49.             Response.Write "(vbDataObject)"  
  50.         Case 13:   
  51.             Response.Write "(vbDecimal)"  
  52.         Case 14:   
  53.             Response.Write "(vbByte)"  
  54.         Case 8192,8204:   
  55.             print_array var, nIndent + 1   
  56.         Case Else:   
  57.             Response.Write "VarType:" & nType   
  58.         End Select  
  59.   
  60.         Response.Write vbCrLf   
  61.     End Sub  
  62.   
  63.     Sub print_array(var, nIndent)   
  64.         print_list "Array", var, nIndent   
  65.     End Sub  
  66.   
  67.     Sub print_request(var, nIndent)   
  68.         print_name "Request", nIndent   
  69.         print_openbrace nIndent   
  70.   
  71.         print_dict "Request.Form", var.Form, nIndent + 1   
  72.         print_dict "Request.QueryString", var.QueryString, nIndent + 1   
  73.         print_dict "Request.Cookies", var.Cookies, nIndent + 1   
  74.         print_dict "Request.ServerVariables", var.ServerVariables, nIndent + 1   
  75.   
  76.         print_closebrace nIndent   
  77.     End Sub  
  78.   
  79.     Sub print_application(var, nIndent)   
  80.         print_name "Application", nIndent   
  81.         print_openbrace nIndent   
  82.   
  83.         print_dict "Application.StaticObjects", var.StaticObjects, nIndent + 1   
  84.         print_dict "Application.Contents", var.Contents, nIndent + 1   
  85.   
  86.         print_closebrace nIndent   
  87.     End Sub  
  88.   
  89.     Sub print_session(var, nIndent)   
  90.         print_name "Session", nIndent   
  91.         print_openbrace nIndent   
  92.   
  93.         print_dict "Session.StaticObjects", var.StaticObjects, nIndent + 1   
  94.         print_dict "Session.Contents", var.Contents, nIndent + 1   
  95.   
  96.         print_closebrace nIndent   
  97.     End Sub  
  98.   
  99.     Sub print_dict(sTypeName, var, nIndent)   
  100.         Dim sKey   
  101.   
  102.         print_name sTypeName, nIndent   
  103.         print_openbrace nIndent   
  104.   
  105.         For Each sKey In var   
  106.             print_key sKey, nIndent + 1   
  107.             print var(sKey), nIndent + 1   
  108.         Next  
  109.   
  110.         print_closebrace nIndent   
  111.     End Sub  
  112.   
  113.     Sub print_list(sTypeName, var, nIndent)   
  114.         Dim vValue, nIndex   
  115.   
  116.         Response.Write sTypeName & vbCrLf   
  117.         print_openbrace nIndent   
  118.   
  119.         nIndex = 0   
  120.         For Each vValue In var   
  121.             print_key nIndex, nIndent + 1   
  122.             print vValue, nIndent + 1   
  123.             nIndex = nIndex + 1   
  124.         Next  
  125.   
  126.         print_closebrace nIndent   
  127.     End Sub  
  128.   
  129.     Private Sub print_name(sName, nIndent)   
  130.         print_indent nIndent   
  131.         Response.Write sName & vbCrLf   
  132.     End Sub  
  133.   
  134.     Private Sub print_key(sKey, nIndent)   
  135.         print_indent nIndent   
  136.         Response.Write "[" & sKey & "] => "  
  137.     End Sub  
  138.   
  139.     Private Sub print_openbrace(nIndent)   
  140.         print_indent nIndent   
  141.         Response.Write "(" & vbCrLf   
  142.     End Sub  
  143.   
  144.     Private Sub print_closebrace(nIndent)   
  145.         print_indent nIndent   
  146.         Response.Write ")" & vbCrLf   
  147.     End Sub  
  148.   
  149.     Private Sub print_indent(nIndent)   
  150.         Response.Write String(nIndent * 4, " ")   
  151.     End Sub  
  152. End Class  
  153.   
  154.   
  155. a = "123"  
  156. b = Split("1 2 3 4 5"" ")   
  157. print_r a   
  158. print_r b   
  159. print_r Session   
  160. 'print_r Application   
  161. 'print_r Request   
  162. %>  

 
 

Total 11
번호 제   목 글쓴이 날짜 추천 비추천 조회
11 asp 배열, print_r , print_r_2 배열 키와 값 찍어주는 함수 덩벙이 06-22 0 0 5169
10    asp 배열, print_r , print_r_2 배열 키와 값 찍어주는 함수 덩벙이 06-22 0 0 9476
9 숫자를 한글로 . 금액을 한글로 표시 덩벙이 06-21 0 0 4302
8    숫자를 한글로 . 금액을 한글로 표시 덩벙이 06-21 0 0 5134
7 php asp 기본사항 덩벙이 06-20 0 0 4973
6 ASP / PHP Cross Reference 덩벙이 09-28 0 0 4287
5 ( php -> exit; / asp -> response.end / jsp return )… 덩벙이 11-12 0 0 4289
4 Encoding and Decoding base64 with (ASP,PHP,JSP) 암호화 덩벙이 09-10 0 0 4287
3 윈도우 XP IIS에서 접속자 수 늘리는 방법 (403.9에러) 덩벙이 10-20 0 0 4288
2 Encoding and Decoding base64 with (ASP,PHP,JSP) 암호화 덩벙이 09-10 0 0 4286
1 asp 게시판 리스트에서 체크박스를 이용하여 글 등록 덩벙이 08-31 0 0 15850
 
개인홈페이지 덤벙닷컴은 프로그래머와 디자이너위한 IT커뮤니티 공간입니다.
Copyright ⓒ www.dumbung.com. All rights reserved.