제목 : classic asp 테이블 row 중 소계, 합계, 총합계 구하는 방법(소스)




소스 :


간단 요약

1. 각 pTotalCount, sTotalCount, tTotalCount, totalCount = 0 선언

2. do loop 로 data 테이블 tr row write

- tNo, sNo, pNo, count 에 db data 넣기(현재 값)

- 이전과 비교해서 oripNo <> pNo 면 part 합계 tr 보여줌(row > 1 일때)

- 이전과 비교해서 orisNo <> sNo 면 subject 합계 tr 보여줌(row > 1 일때)

- 이전과 비교해서 oritNo <> tNo 면 test 합계 tr 보여줌(row > 1 일때)

- oripNo 에 현재 pNo 저장

- orisNo 에 현재 sNo 저장

- oritNo 에 현재 tNo 저장

- tr 에 현재 data row 뿌릴 것

- pTotalCount, sTotalCount, tTotalCount, totalCount 에 count 를 더함

3. 이전과 비교해서 oripNo = pNo 면 part 합계 tr 보여줌(row > 1 일때)

4. 이전과 비교해서 orisNo = sNo 면 subject 합계 tr 보여줌(row > 1 일때)

5. 이전과 비교해서 oritNo = tNo 면 test 합계 tr 보여줌(row > 1 일때)




내용 :



위 스샷과 같이, 

소계, 합계, 총계 등 단계별로 합산내역을 보여줄 때 방법.


물론, sql 쿼리문으로도 해결이 가능하지만. 무식한 방법으로 해봄.


index 넘버링 순서(order by)는

tNo asc, sNo asc, pNo asc, cNo asc




1. part합계 구하기 - 이전, 다음 pNo 를 비교하여 다르면 tr 로 뿌릴 것. pTotalCount

2. subject합계 구하기 - 이전, 다음 sNo 를 비교하여 다르면 tr 로 뿌릴 것. sTotalCount

3. test합계 구하기 - 이전, 다음 tNo 를 비교하여 다르면 tr 로 뿌릴 것. tTotalCount

4.전체 row 쿼리문으로 loop 돌려서 뿌릴 것 

- 각 합계 구할 것(pTotalCount, sTotalCount, tTotalCount)

- 전체 총합 구할 것(totalCount)

5. part합계 구하기 - 이전, 다음 pNo 를 비교하여 같으면 tr 로 뿌릴 것. pTotalCount

6. subject합계 구하기 - 이전, 다음 sNo 를 비교하여 같으면 tr 로 뿌릴 것. sTotalCount

7. test합계 구하기 - 이전, 다음 tNo 를 비교하여 같으면 tr 로 뿌릴 것. tTotalCount

8. 전체 총합 - totalCount


이런식으로 뿌리면 되는데...상세한 내용은 첨부파일 소스 참조.


input box의 값들은 삭제했습니다.







예제 소스 파일 : asp테이블소계구하기.html


 출처 :  




저작자 표시 비영리 변경 금지
신고
Posted by 잠수콩



제목 : classic asp json send, receive




소스 :


Function BytesToStr(bytes)

Dim Stream

Set Stream = Server.CreateObject("Adodb.Stream")

Stream.Type = 1 'adTypeBinary

Stream.Open

Stream.Write bytes

Stream.Position = 0

Stream.Type = 2 'adTypeText

Stream.Charset = "utf-8"

BytesToStr = Stream.ReadText

Stream.Close

Set Stream = Nothing

End Function




If Request.TotalBytes > 0 Then

Dim lngBytesCount, jsonText

lngBytesCount = Request.TotalBytes

jsonText = BytesToStr(Request.BinaryRead(lngBytesCount))

    Response.ContentType = "text/plain"

    Response.Write "Your " & Request.ServerVariables("REQUEST_METHOD") & " data was: " & post

End If




내용 :


asp 페이지에서 json request 하는 방법






예제 소스 파일 :


 출처 :  




저작자 표시 비영리 변경 금지
신고
Posted by 잠수콩



제목 : 성능 및 스타일 향상에 도움이 되는 28가지 ASP 팁




소스 :




내용 :


자주 사용되는 데이터는 웹 서버에 캐시하십시오.

자주 사용되는 데이터는 응용 프로그램이나 세션 개체에 캐시하십시오.

데이터 및 HTML은 웹 서버 디스크에 캐시하십시오.

비 agile 구성 요소는 응용 프로그램이나 세션 개체에 캐시하지 마십시오.

데이터베이스 연결은 응용 프로그램이나 세션 개체에 캐시하지 마십시오.

세션 개체를 올바르게 사용하십시오.

코드를 COM 개체에 캡슐화하십시오.

최신의 리소스를 얻어 신속하게 릴리스하십시오.

독립 프로세스 실행을 통해 성능과 안정성을 적절히 안배하십시오.

Option Explicit를 사용하십시오.

로컬 변수를 하위 루틴 및 함수에 사용하십시오.

자주 사용되는 데이터를 스크립트 변수에 복사하십시오.

배열 크기 재정의를 피하십시오.

응답 버퍼링을 사용하십시오.

인라인 스크립트 및 Response.Write 명령문을 일괄 처리하십시오.

실행 시간이 긴 페이지를 만들 때 Response.IsClientConnected를 사용하십시오.

태그를 사용하여 개체를 초기화하십시오.

TypeLib 바인딩을 ADO 및 기타 구성 요소에 사용하십시오.

브라우저의 유효성 검사 기능을 활용하십시오.

루프 형식의 문자열 연결을 피하십시오.

브라우저 및 프록시 캐싱을 사용하십시오.

가능하면 Response.Redirect가 아닌 Server.TRansfer를 사용하십시오.

디렉터리 URL에 후행 슬래시를 사용하십시오.

서버 변수 사용을 피하십시오.

최신 구성 요소로 업그레이드하십시오.

웹 서버를 조정하십시오.

성능 테스트를 수행하십시오.






예제 소스 파일 :


 출처 :  https://www.microsoft.com/korea/technet/iis/tips/asptips17_29.mspx




저작자 표시 비영리 변경 금지
신고
Posted by 잠수콩



제목 : classic asp 에서 업로드컴포넌트 dll 파일 생성법 및 사용법




소스 :


Option Explicit
Const ERR_INVALID_FILENAME = vbObjectError + 1000
Const ERR_INVALID_TARGET = vbObjectError + 1001
Const ERR_FILE_EXISTS = vbObjectError + 1002
Const ERR_UPLOAD_CALLED = vbObjectError + 1003
Const VB_ERR_PATH_NOT_FOUND = 76

Private m_objContext As ObjectContext
Private m_objRequest As ASPTypeLibrary.Request

Private m_strTarget As String
Private m_strFileName As String
Private m_blnOverWrite As Boolean
Private m_blnUploaded As Boolean
Private m_lngTotalBytes As Long

'All other form elements go here.
Private m_formCol As Scripting.Dictionary

Implements ObjectControl

Private Function ObjectControl_CanBePooled() As Boolean
ObjectControl_CanBePooled = False
End Function

Private Sub ObjectControl_Activate()
Set m_objContext = GetObjectContext()
Set m_objRequest = m_objContext("Request")
Set m_formCol = New Scripting.Dictionary
End Sub

Private Sub ObjectControl_Deactivate()
Set m_objContext = Nothing
Set m_objRequest = Nothing
Set m_formCol = Nothing
End Sub

Public Sub Upload()

Const DEFAULT_CHUNK_SIZE = 262144 '256kb

Dim bytBeginOfChunk() As Byte
Dim bytEndOfChunk() As Byte
Dim bytBeginOfName() As Byte
Dim bytEndOfName() As Byte
Dim bytBeginOfFile() As Byte
Dim bytEndOfFile() As Byte
Dim bytBeginOfValue() As Byte
Dim bytEndOfValue() As Byte
Dim bytName() As Byte
Dim bytValue() As Byte
Dim bytThisChunk() As Byte
Dim bytFileName() As Byte
Dim lngBeginOfChunk As Long
Dim lngEndOfChunk As Long

Dim lngBeginOfAttribute As Long
Dim lngEndOfAttribute As Long
Dim lngBeginOfValue As Long
Dim lngEndOfValue As Long
Dim blnEndOfData As Boolean
Dim lngChunkSize As Long
Dim lngBytesLeft As Long
Dim lngFileNum As Long
Dim strFileName As String

On Error GoTo UploadErr

If Uploaded Then
Err.Raise ERR_UPLOAD_CALLED, App.Title, "The Upload method has already been called."
End If

bytBeginOfChunk = StrConv("-----------------------------", vbFromUnicode)
bytEndOfChunk = StrConv("-----------------------------", vbFromUnicode)

bytBeginOfName = StrConv("name=", vbFromUnicode) & ChrB(34)
bytEndOfName = ChrB(34)

bytBeginOfFile = StrConv("filename=", vbFromUnicode) & ChrB(34)
bytEndOfFile = ChrB(34)

bytBeginOfValue = ChrB(13) & ChrB(10) & ChrB(13) & ChrB(10)
bytEndOfValue = ChrB(13) & ChrB(10) & StrConv("-----------------------------", vbFromUnicode)

'Initialize the chunk size.
If m_objRequest.TotalBytes <= DEFAULT_CHUNK_SIZE Then
lngChunkSize = m_objRequest.TotalBytes
Else
lngChunkSize = DEFAULT_CHUNK_SIZE
End If

'Get the chunk from the request object.
bytThisChunk = m_objRequest.BinaryRead(CVar(lngChunkSize))

'Initialize the value.
lngBeginOfChunk = 1

'Repeat until the end of the data.
Do While Not blnEndOfData
'Begin the chunk.
lngBeginOfChunk = InStrB(lngBeginOfChunk, bytThisChunk, bytBeginOfChunk) + UBound(bytBeginOfChunk)

'Get name of the item.
lngBeginOfAttribute = InStrB(lngBeginOfChunk, bytThisChunk, bytBeginOfName) + UBound(bytBeginOfName) + 1
lngEndOfAttribute = InStrB(lngBeginOfAttribute, bytThisChunk, bytEndOfName)
bytName = MidB(bytThisChunk, lngBeginOfAttribute, lngEndOfAttribute - lngBeginOfAttribute)

'Get the value of the item.
lngBeginOfValue = InStrB(lngEndOfAttribute, bytThisChunk, bytBeginOfValue, vbBinaryCompare) + UBound(bytBeginOfValue) + 1
lngEndOfValue = InStrB(lngBeginOfValue, bytThisChunk, bytEndOfValue, vbBinaryCompare)

If lngEndOfValue = 0 Then
'The item extends the past current chunk.
bytValue = MidB(bytThisChunk, lngBeginOfValue, lngChunkSize)
Else
'The item value exists in the current chunk.
bytValue = MidB(bytThisChunk, lngBeginOfValue, lngEndOfValue - lngBeginOfValue)
End If

If UCase(StrConv(bytName, vbUnicode)) = "FILE" Then
lngBeginOfAttribute = InStrB(lngBeginOfChunk, bytThisChunk, bytBeginOfFile, vbBinaryCompare) + UBound(bytBeginOfFile) + 1
lngEndOfAttribute = InStrB(lngBeginOfAttribute, bytThisChunk, bytEndOfFile, vbBinaryCompare)

bytFileName = MidB(bytThisChunk, lngBeginOfAttribute, lngEndOfAttribute - lngBeginOfAttribute)

If UBound(bytFileName) < 0 Or UBound(bytValue) < 0 Then
Err.Raise ERR_INVALID_FILENAME, App.Title, "Invalid File Name."
End If

If Me.Target = "" Then
Err.Raise ERR_INVALID_TARGET, App.Title, "Invalid Target."
End If

'Use the original file name.
If Me.FileName = "" Then

'Trim the path from the file name.
While InStrB(1, bytFileName, StrConv("\", vbFromUnicode), vbBinaryCompare) > 0
bytFileName = MidB(bytFileName, InStrB(1, bytFileName, StrConv("\", vbFromUnicode)) + 1)
Wend

'Set the property.
Me.FileName = StrConv(bytFileName, vbUnicode)

'Convert the byte to Unicode.
strFileName = Me.Target & Me.FileName

Else
strFileName = Me.Target & Me.FileName
End If

'Check for overwrite.
If Me.OverWrite Then
'This is the hack check. Make sure that wildcard characters cannot be used.
If Not InStr(1, strFileName, "*") Then
If FileExists(strFileName) Then
Kill strFileName
End If
Else
Err.Raise ERR_INVALID_FILENAME, App.Title, "The specified file name appears to be invalid."
End If
Else
If FileExists(strFileName) Then
Err.Raise ERR_FILE_EXISTS, App.Title, "The file already exists."
End If
End If

lngFileNum = FreeFile

Open strFileName For Binary Access Write As #lngFileNum

'Write the file to the destination directory.
Put #lngFileNum, , bytValue

'This chunk is empty. Therefore, get a new chunk.
lngBytesLeft = m_objRequest.TotalBytes - lngChunkSize

'Start the chunking machine.
Do While lngBytesLeft > 0

'Get a new chunk.
bytThisChunk = m_objRequest.BinaryRead(CVar(lngChunkSize))

lngEndOfValue = InStrB(1, bytThisChunk, bytEndOfValue, vbBinaryCompare)

If lngEndOfValue > 0 Then
'The item value exists in the current chunk.
bytThisChunk = MidB(bytThisChunk, 1, lngEndOfValue - 1)
End If

'Append the chunk to the file.
Put #lngFileNum, , bytThisChunk

lngBytesLeft = lngBytesLeft - lngChunkSize

If lngBytesLeft < lngChunkSize Then
lngChunkSize = lngBytesLeft
End If
Loop

Close #lngFileNum

TotalBytes = FileLen(strFileName)

' Exit Do
Else
If UCase(StrConv(bytName, vbUnicode)) = "SAVEAS" Then
Me.FileName = StrConv(bytValue, vbUnicode)
Else
'form field other than file, such as textboxes
If UBound(bytValue) > 0 And UBound(bytName) > 0 Then
m_formCol.Add StrConv(bytName, vbUnicode), StrConv(bytValue, vbUnicode)
Else
m_formCol.Add StrConv(bytName, vbUnicode), ""
End If
End If
End If

'Get the next chunk.
lngBeginOfChunk = lngEndOfValue

If InStrB(lngBeginOfChunk, bytThisChunk, bytBeginOfName, vbBinaryCompare) = 0 Then
blnEndOfData = True
End If
Loop

Uploaded = True

Exit Sub

UploadErr:

If Err.Number = VB_ERR_PATH_NOT_FOUND Then
Err.Raise ERR_INVALID_TARGET, App.Title, "The Target specified does not exist."
Else
Err.Raise Err.Number, Err.Source, Err.Description
End If
End Sub

Public Property Get Form() As Collection
Set Form = m_formCol
End Property
Public Property Get FileName() As String
FileName = m_strFileName
End Property

Public Property Let FileName(ByVal strNewValue As String)
If Uploaded Then
Err.Raise ERR_UPLOAD_CALLED, App.Title, "The Upload method has already been called."
Else
m_strFileName = strNewValue
End If
End Property

Public Property Get OverWrite() As Boolean
OverWrite = m_blnOverWrite
End Property

Public Property Let OverWrite(ByVal blnNewValue As Boolean)
If Uploaded Then
Err.Raise ERR_UPLOAD_CALLED, App.Title, "The Upload method has already been called."
Else
m_blnOverWrite = blnNewValue
End If
End Property

Private Property Get Uploaded() As Boolean
Uploaded = m_blnUploaded
End Property

Private Property Let Uploaded(ByVal blnNewValue As Boolean)
m_blnUploaded = blnNewValue
End Property

Public Property Get Target() As String
Target = m_strTarget
End Property

Public Property Let Target(ByVal NewValue As String)
If Uploaded Then
Err.Raise ERR_UPLOAD_CALLED, App.Title, "The Upload method has already been called."
Else
m_strTarget = NewValue
End If
End Property

Private Function FileExists(ByVal FileName As String) As Boolean
On Error GoTo FileExistsErr

FileLen FileName
FileExists = True
Exit Function

FileExistsErr:
If Err.Number = VB_ERR_PATH_NOT_FOUND Then
FileExists = False
End If
End Function

Public Property Get TotalBytes() As Long
TotalBytes = m_lngTotalBytes
End Property

Private Property Let TotalBytes(ByVal NewValue As Long)
m_lngTotalBytes = NewValue
End Property





내용 :


Microsoft Visual Basic 6 프로젝트 설정 및 코드

  1. Visual Basic 시작 하 고 새 ActiveX DLL 프로젝트를 시작 합니다.
  2. 프로젝트 이름
    ASPFileUpload.
  3. Class1 에 이름 변경
    파일입니다.
  4. 프로젝트 메뉴에서 참조를 클릭 합니다.
  5. 참조 대화 상자에서 다음 옵션을 선택한 다음 확인을 누릅니다.
    • Visual Basic 응용 프로그램에 대 한
    • Visual Basic 런타임 개체 및 프로시저
    • Visual Basic 개체 및 프로시저
    • OLE 자동화
    • COM + 서비스 형식 라이브러리
    • Microsoft Active Server Pages 개체 라이브러리
    • Microsoft 스크립팅 런타임
  6. 프로젝트 메뉴에서 ASPFileUpload 속성을 클릭 합니다.
  7. 프로젝트 속성 대화 상자에서 무인 실행 및 메모리에 보유선택 하 고 확인을 클릭 합니다.
  8. File.cls에 다음 코드를 붙여 넣습니다.







예제 소스 파일 :



<%@ Language=VBScript %><html>
<head>
</head>
<body>
<form enctype="multipart/form-data" action="uploadfile.asp" method="post" name="main1">
<input name="file" type="file" size="50">
<INPUT type="text" id=text1 name=text1><INPUT type="text" id=text2 name=text2>
<input name="submit" type="submit" value="Upload">
</form>
</body>
</html>
<%
'//////////////////////////////////////////////////////////////////////////////////
'// ASPFileUpload.File API
'//
'// Properties
'// FileName
'// - Read/Write
'// - The file will be saved with this file name.
'// - This property can only be set before calling Upload.
'// - If no value is specified, the original file name
'// - in the HTTP post will be used.
'//
'// OverWrite
'// - Read/Write
'// - This property can only be set before calling Upload.
'// - If set to false and if the destination file exists, an error
'// - is raised. The default value is False.
'//
'// Target
'// - Read/Write
'// - The file will be written to this folder.
'// - This property can only be set before calling Upload.
'// - There is no default value for this property and it is required.
'//
'// Form
'// - ReadOnly
'// - Scripting.Dictionary object
'// - Can access a specific item by using aspfileupload.Form("item").
'// - Acts like the asp form collection.
'// - Can enumerate all values in a collection with for each.
'// - Only filled after the Upload method is called.
'//
'// Methods
'// Upload
'// - This method parses the HTTP Post and writes the file.
'//
'// Other
'// - ASPFileUpload requires COM+
'// - Any call to the Request.Form() collection will cause the Upload
'// method to fail as the method references the Binary contents of the
'// Request object through the Request.BinaryRead method.
'// - Also, if you access a variable in the Request collection without
'// specifying the subcollection that it belongs to, the Request.Form collection
'// may be searched. This causes an error in the Upload method.
'//
'//////////////////////////////////////////////////////////////////////////////////

Dim strMsg 'As String

' On Error Resume Next
dim fuFile
set fuFile = server.CreateObject("aspFileupload.file")
'Set the destination folder.
fuFile.Target = "C:\TEMP\AspFileUpload\"
fuFile.Upload

If Err.number = 0 Then
strMsg = fuFile.FileName & " was uploaded successfully."
Else
strMsg = "An error occurred when uploading your file: " & Err.Description
End If
for each o in fuFile.Form
Response.Write o & "<BR>"

next

Response.Write fuFile.Form.item("text1") & " : " & fuFile.Form.item("text2")
' Response.Write Request.Form("test")
set fufile = nothing
%>
<html>
<head></head>
<body>
<%=strMsg%>
</body>
</html>
  1. 와 같이 업로드 된 파일을 수신 하는 웹 서버에 폴더를 만듭니다.
    C:\TEMP\AspFileUpload.
  2. ASPFileUpload.dll 파일을 웹 서버에 복사한 다음 명령 프롬프트에서 다음 명령을 사용 하 여 등록:
    regsvr32 PathToDLL\ASPFileUpload.dll
  3. 사용자에 게 파일을 업로드 하려면 파일 권한 (쓰기 액세스)을 적용 합니다.
  4. 시작을 누르고,
    설정을 누른 다음 제어판을 클릭 합니다.
  5. 제어판에서 관리 도구클릭 한 다음 구성 요소 서비스 Microsoft 관리 콘솔 (MMC)에서 구성 요소 서비스를 열려면 클릭 합니다.
  6. 구성 요소 서비스 노드를 확장 하면
    내 컴퓨터 노드를, 컴퓨터 노드 및 해당
    COM + 응용 프로그램 노드입니다.
  7. 노드를 마우스 오른쪽 단추로 클릭 하 고 새로 만들기를 가리킨 다음 클릭
    응용 프로그램.
  8. 설치 하거나 새 응용 프로그램 만들기 대화 상자에서 빈 응용 프로그램 만들기, 응용 프로그램 이름을 클릭 합니다. 서버 응용 프로그램을 선택 하 고 을 클릭 해야 합니다.
  9. 응용 프로그램 Id 설정 대화 상자에서 다음 사용자를 클릭 하 고 적절 한 사용자 계정에 대 한 자격 증명을 입력 합니다. 사용자 계정이 업로드 된 파일을 받을 폴더에 대 한 쓰기 권한이 있어야 합니다.
  10. 마침을 클릭합니다.
  11. 이 응용 프로그램에 대 한 방금 만든 노드를 확장 합니다.
  12. 해당 노드의 마우스 오른쪽 단추로 클릭 하 고 새로 만들기를 가리킨 다음 구성 요소를 클릭 합니다.
  13. 새 구성 요소 설치를 클릭 하 고 저장 하 고.dll 등록 되어 있는 폴더를 찾아 파일, 파일을 클릭 하 고 다음을 누르고
    마침.
  14. 웹 루트 폴더로 Postfile.asp 파일과 Uploadfile.asp 파일을 복사 합니다. 웹 루트 폴더는 기본적으로 C:\Inetpub\Wwwroot입니다.
  15. 1 단계에서 만든 폴더를 반영 하도록 Uploadfile.asp의 대상 폴더를 편집 합니다. 대상 폴더 할당은 코드의 다음 줄에 있습니다.
    fuFile.Target = "C:\TEMP\AspFileUpload\"


파일 업로드

  1. 웹 브라우저에서 다음 URL에서 Postfile.asp 페이지를 엽니다.
    http://YourWebServer/Postfile.asp
  2. 업로드를 누른 다음 원하는 파일을 선택 합니다.
    업로드합니다.
  3. 업로드 폴더를 확인 합니다. 업로드 한 파일이이 폴더에 나타납니다.

 출처 :  https://support.microsoft.com/ko-kr/help/299692/how-to-upload-files-to-a-web-server-by-using-asp




저작자 표시 비영리 변경 금지
신고
Posted by 잠수콩



제목 : asp recursive 트리 구조




소스 :


<%

    function fntree(parent, arrPages)

        children = false

        for x = 0 to ubound(arrPages, 2)

phone = ""

name = ""

            if (arrPages(1, x) = parent) then

                if (children = false AND parent > "0") then

                    children = true

                    Response.Write("<ul>")

                end If


If arrPages(0,x) = "" Then

phone = ""

Else

phone = Left(arrPages(0,x), 3) & "****" & Right(arrPages(0,x), 4)

End If


If Len(arrPages(2,x)) > 2 Then

name = Left(arrPages(2,x), 1) & "*" & Mid(arrPages(2,x), 3, Len(arrPages(2,x)))

Else

name = ""

End If

            %>

            <li>

                <%=phone%>, <%=name%>

                <% Call fntree(arrPages(0,x), arrPages) %>

            </li>

<%

            end if

        next


        if (children = true AND parent > "0") then

            Response.Write("</ul>")

        end if


    end function




'배열에 담길 값

'arrList == ID, PID, NAME




    print "<ul>"

print "<li>" & authPartnerID & ", 나"

    Call fntree(authPartnerID, arrList)

    print "</li></ul>"

%>


내용 :



-나

ㄴ아들1

ㄴ손자1

ㄴ증손자1

ㄴ증손자2

ㄴ손자2

ㄴ아들2


를 표현할때 사용함.





예제 소스 파일 :


 출처 :  




저작자 표시 비영리 변경 금지
신고
Posted by 잠수콩



제목 : 도로명, 지번, 신 우편번호 5자리 검색하기. 공공데이터 우편번호 api 사용. (ASP)




소스 :



<%@Language="VBScript" CODEPAGE="65001" %>

<%

    Response.CharSet="utf-8"

    Session.codepage="65001"

    Response.codepage="65001"

    Response.ContentType="text/html;charset=utf-8"

%>

<!doctype html>

<html lang="en">

 <head>

  <meta charset="UTF-8">

  <meta name="Generator" content="EditPlus®">

  <meta name="Author" content="">

  <meta name="Keywords" content="">

  <meta name="Description" content="">

  <title>Document</title>

 </head>

 <body>

 <%

address = request("address")

 %>

 <form name="Frm" method="post" action="index.asp">

<input type="text" name="address" value="<%=address%>" />

<input type="submit" value="전송" />

 </form>

<%

address = server.urlencode(address)

strkey1 = "인증키입력"


strUrl = "http://openapi.epost.go.kr/postal/retrieveNewAdressAreaCdSearchAllService/retrieveNewAdressAreaCdSearchAllService/getNewAddressListAreaCdSearchAll?countPerPage=10&currentPage=1&ServiceKey="&strkey1&"&srchwrd="&address



    Set objXmlHttp = server.CreateObject("Msxml2.ServerXMLHTTP.3.0")

    objXmlHttp.open "GET", strUrl, false

    objXmlHttp.send

status = objXmlHttp.status


    strResponseText = objXmlHttp.responseText

    Set objXmlHttp = Nothing


    Set objMsXmlDom = Server.CreateObject("microsoft.XMLDOM")

    objMsXmlDom.async = False

    objMsXmlDom.loadXML(strResponseText)




Set NodeList = objMsXmlDom.documentElement.selectNodes("//NewAddressListResponse/cmmMsgHeader")

For Each Node In NodeList

    Set AddrNode = Node.selectSingleNode("responseTime/text()")

    if not AddrNode Is Nothing then response.write "responseTime=" &AddrNode.nodeValue & "<br/>"

    set AddrNode = nothing

    Set AddrNode = Node.selectSingleNode("successYN/text()")

    if not AddrNode Is Nothing then response.write "successYN=" &AddrNode.nodeValue & "<br/>"

    set AddrNode = nothing

    Set AddrNode = Node.selectSingleNode("returnCode/text()")

    if not AddrNode Is Nothing then response.write "returnCode=" &AddrNode.nodeValue & "<br/>"

    set AddrNode = nothing

    Set AddrNode = Node.selectSingleNode("totalCount/text()")

    if not AddrNode Is Nothing then response.write "totalCount=" & AddrNode.nodeValue & "<br/>"

    set AddrNode = nothing

    Set AddrNode = Node.selectSingleNode("countPerPage/text()")

    if not AddrNode Is Nothing then response.write "countPerPage=" &AddrNode.nodeValue & "<br/>"

    set AddrNode = nothing

    Set AddrNode = Node.selectSingleNode("totalPage/text()")

    if not AddrNode Is Nothing then response.write "totalPage=" &AddrNode.nodeValue & "<br/>"

    set AddrNode = nothing


    Set AddrNode = Node.selectSingleNode("currentPage/text()")

    if not AddrNode Is Nothing then response.write "currentPage=" &AddrNode.nodeValue & "<br/>"

    set AddrNode = nothing



Next


Set NodeList = Nothing



Set NodeList = objMsXmlDom.documentElement.selectNodes("//NewAddressListResponse/newAddressListAreaCdSearchAll")

For Each Node In NodeList

    Set AddrNode = Node.selectSingleNode("zipNo/text()")

    if not AddrNode Is Nothing then response.write AddrNode.nodeValue & "<br/>"

    set AddrNode = nothing

    Set AddrNode = Node.selectSingleNode("lnmAdres/text()")

    if not AddrNode Is Nothing then response.write AddrNode.nodeValue & "<br/>"

    set AddrNode = nothing

    Set AddrNode = Node.selectSingleNode("rnAdres/text()")

    if not AddrNode Is Nothing then response.write AddrNode.nodeValue & "<br/>"

    set AddrNode = nothing

Next


Set NodeList = Nothing


    Set objMsXmlDom = Nothing

%>


 </body>

</html>




내용 :


인증키 발급방법, 순서

   1, 회원가입 : http://www.data.go.kr (공공데이터 포털)

   2, 회원로그인

   3, 메인 메뉴중 [오픈 API] 클릭 -> 통합검색폼에서 '우편번호' 라고 검색하면

       '우편번호 정보' 라는 항목이 찾아짐.

   4, [활용신청] 버튼 클릭해서 '개발계정 신청' 양식을 작성함.

       * 시스템유형 : 일반

       * 활용목적 : 웹개발

       * 기타항목 : 입렵하라는 건 다 입력해줌

    5, 신청서 전송하면 실시간 승인완료 되고 인증키도 바로 발급됨

    6, 마이페이지 -> OPEN API -> 개발계정 -> 검색결과 -> 인증키 확인


인증키는 인코딩된 형태로 제공됨.



#상세 기능 설명


새우편번호 정보 : 도로명주소 및 지번주소를 페이지당 출력될 개수와 출력될 페이지에 맞춰 5자리 우편번호와 도로명주소 및 지번주소의 상세내역을 조회해주는 우편번호 정보조회 서비스






예제 소스 파일 :


 출처 :  https://www.data.go.kr




저작자 표시 비영리 변경 금지
신고
Posted by 잠수콩




제목 : 실시간 환율 계산법. yahoo(야후) 사용법. 한국(원화) --> 중국(위안화) 계산




소스 :




내용 :


http://finance.yahoo.com/webservice/v1/symbols/allcurrencies/quote


이것을 브라우저로 조회해보면


xml 형태로 쭉 나오는데, 그 중에서


<resource classname="Quote">

<field name="name">USD/CNY</field>

<field name="price">6.520100</field>

<field name="symbol">CNY=X</field>

<field name="ts">1456449728</field>

<field name="type">currency</field>

<field name="utctime">2016-02-26T01:22:08+0000</field>

<field name="volume">0</field>

</resource>


<resource classname="Quote">

<field name="name">USD/KRW</field>

<field name="price">1235.000000</field>

<field name="symbol">KRW=X</field>

<field name="ts">1456449730</field>

<field name="type">currency</field>

<field name="utctime">2016-02-26T01:22:10+0000</field>

<field name="volume">0</field>

</resource>



두개를 가져올 수 있다.


즉, USD(미국 달러) --> CNY(중국 위안화), USD(미국 달러) --> KRW(한국 원화)의 값이 나온다.


그중 price 를 보면 usd : cny = 1 : 6.520100 등으로 계산이 되는건데.


이것을 한국(원화) 1원당 중국(위안화) 0.0052794331983806 으로 나오는걸 알수있다.


즉, 1000원에  5.279(반올림 5.28) 로 변환하면 될 듯하다.







예제 소스 파일 :


 출처 :  나




저작자 표시 비영리 변경 금지
신고
Posted by 잠수콩




제목 : 축약 URL, 단축 URL 생성 ASP function




소스 :


Function getShortUrlBitly(ByVal longUrl, ByRef resultCode, ByRef resultTxt)

Dim Rs

Dim sql


Dim objRoot


Dim requestUrl : requestUrl = "http://api.bit.ly/v3/shorten"

Dim username, apiKey

Dim params


Dim result : result = longUrl


resultCode = "900"

resultTxt = ""


username = "" : apiKey = ""        '//값을 넣어야함.



If username <> "" And apiKey <> "" Then

Set objRoot = xmlDoc(xmlHttpSend("GET", _

Null, _

requestUrl, _

"login="& username &"&apiKey="& apiKey &"&longUrl="& Server.URLEncode(longUrl) &"&format=xml" _

))


If Not objRoot Is Nothing Then

With objRoot

resultCode = .selectSingleNode("status_code").Text

resultTxt = .selectSingleNode("status_txt").Text


If resultCode = "200" Then

result = .selectSingleNode("data").selectSingleNode("url").Text

Else

resultCode = statusCode

resultTxt = statusTxt

End If

End With

End If


Set objRoot = Nothing

End If


getShortUrlBitly = result

End Function




내용 :





예제 소스 파일 :


 출처 :  




저작자 표시 비영리 변경 금지
신고
Posted by 잠수콩

URL Rewrite

플밍_ASP 2015.03.18 17:04



제목 :  URL Rewrite


소스 :




내용 :

IIS URL Rewrite 2.0 enables Web administrators to create powerful rules to implement URLs that are easier for users to remember and easier for search engines to find. By using rule templates, rewrite maps, .NET providers, and other functionality integrated into IIS Manager, Web administrators can easily set up rules to define URL rewriting behavior based on HTTP headers, HTTP response or request headers, IIS server variables, and even complex programmatic rules. In addition, Web administrators can perform redirects, send custom responses, or stop HTTP requests based on the logic expressed in the rewrite rules.



예제 소스 파일 :

rewrite_x64_ko-KR.msi

 

 

http://localhost:8077/board/708 방식으로 사용하고 싶을때

 

web.config 파일에

 

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Rewrite to board_view.asp">
                    <match url="^board/([0-9]+)" />
                    <action type="Rewrite" url="/board_view.asp?idx={R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

 

이렇게 넣으면 됨

 



저작자 표시 비영리 변경 금지
신고
Posted by 잠수콩



제목 :  Using Classic ASP and URL Rewrite for Dynamic SEO Functionality


소스 :




내용 :



예제 소스 파일 :



저작자 표시 비영리 변경 금지
신고
Posted by 잠수콩