문자열 데이터 채워진다 스크립팅 사전 정렬

기술 자료 번역 기술 자료 번역
기술 자료: 246067 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

요약

스크립팅 Dictionary 개체를 고유 키 및 항목 데이터가 구성된 배열 정보가 저장되는 PERL 결합 배열의 것과 같습니다. 정렬되지 않은 이 정보가 저장되어 있으므로 통해 배열의 열거 저장되어 있던 주문 정보를 반환합니다. 이 문서의 목적은 키 또는 항목의 문자열 데이터로 채운 사전 개체의 내용을 정렬합니다 SortDictionary() 함수를 정의해야 합니다.

추가 정보

다음 코드 예제에서는 dictKeydictItem, SortDictionary() 함수에 의해 사용되는 상수를 정의합니다. SortDictionary() 함수는 두 개의 매개 변수를 스크립팅 사전 및 사전 키 또는 항목을 정렬할 것인지 결정하는 데 상수 중 하나를 이전에 만든 개체를 사용합니다.

Const dictKey  = 1
Const dictItem = 2

Function SortDictionary(objDict,intSort)
  ' declare our variables
  Dim strDict()
  Dim objKey
  Dim strKey,strItem
  Dim X,Y,Z

  ' get the dictionary count
  Z = objDict.Count

  ' we need more than one item to warrant sorting
  If Z > 1 Then
    ' create an array to store dictionary information
    ReDim strDict(Z,2)
    X = 0
    ' populate the string array
    For Each objKey In objDict
        strDict(X,dictKey)  = CStr(objKey)
        strDict(X,dictItem) = CStr(objDict(objKey))
        X = X + 1
    Next

    ' perform a a shell sort of the string array
    For X = 0 to (Z - 2)
      For Y = X to (Z - 1)
        If StrComp(strDict(X,intSort),strDict(Y,intSort),vbTextCompare) > 0 Then
            strKey  = strDict(X,dictKey)
            strItem = strDict(X,dictItem)
            strDict(X,dictKey)  = strDict(Y,dictKey)
            strDict(X,dictItem) = strDict(Y,dictItem)
            strDict(Y,dictKey)  = strKey
            strDict(Y,dictItem) = strItem
        End If
      Next
    Next

    ' erase the contents of the dictionary object
    objDict.RemoveAll

    ' repopulate the dictionary with the sorted information
    For X = 0 to (Z - 1)
      objDict.Add strDict(X,dictKey), strDict(X,dictItem)
    Next

  End If

End Function
				

A 예제 작업

다음은 위의 기능을 사용하면 사용합니다.

참고: 이 예제에서는 실제 정렬 함수에서 모든 메모가 제거되었습니다.

다음 ASP 코드를 복사한 다음 적어도 액세스 함께 Sortdemo.asp 같이 폴더의 폴더 저장 스크립트:
<%@LANGUAGE="VBSCRIPT"%>
<% Option Explicit %>
<html>
<head><title>Dictionary Sorting</title></head>
<body>
<%

  Dim d, i

  Const dictKey  = 1
  Const dictItem = 2

  Set d = Server.CreateObject("Scripting.Dictionary")

  d.Add "3", "Delta"
  d.Add "1", "Foxtrot"
  d.Add "4", "Bravo"
  d.Add "2", "Echo"
  d.Add "6", "Alpha"
  d.Add "5", "Charlie"

  Response.Write "<p>Before Sorting:<br>"
  For Each i In d
    Response.Write i & "=" & d(i) & "<br>"
  Next

  Response.Write "<p>By Key:<br>"
  SortDictionary d,dictKey
  For Each i In d
    Response.Write i & "=" & d(i) & "<br>"
  Next

  Response.Write "<p>By Item:<br>"
  SortDictionary d,dictItem
  For Each i In d
    Response.Write d(i) & "=" & i & "<br>"
  Next
%>
</body>
</html>
<%
  Function SortDictionary(objDict,intSort)
    Dim strDict()
    Dim objKey
    Dim strKey,strItem
    Dim X,Y,Z
    Z = objDict.Count
    If Z > 1 Then
      ReDim strDict(Z,2)
      X = 0
      For Each objKey In objDict
          strDict(X,dictKey)  = CStr(objKey)
          strDict(X,dictItem) = CStr(objDict(objKey))
          X = X + 1
      Next
      For X = 0 to (Z - 2)
        For Y = X to (Z - 1)
          If StrComp(strDict(X,intSort),strDict(Y,intSort),vbTextCompare) > 0 Then
              strKey  = strDict(X,dictKey)
              strItem = strDict(X,dictItem)
              strDict(X,dictKey)  = strDict(Y,dictKey)
              strDict(X,dictItem) = strDict(Y,dictItem)
              strDict(Y,dictKey)  = strKey
              strDict(Y,dictItem) = strItem
          End If
        Next
      Next
      objDict.RemoveAll
      For X = 0 to (Z - 1)
        objDict.Add strDict(X,dictKey), strDict(X,dictItem)
      Next
    End If
  End Function
%>
				
탐색할 때 다음과 같은 출력이 표시됩니다:
Before Sorting:
3=Delta
1=Foxtrot
4=Bravo
2=Echo
6=Alpha
5=Charlie

By Key:
1=Foxtrot
2=Echo
3=Delta
4=Bravo
5=Charlie
6=Alpha

By Item:
Alpha=6
Bravo=4
Charlie=5
Delta=3
Echo=2
Foxtrot=1
				

Microsoft는 묵시적인 보증 없이 목적으로만 프로그래밍 예제를 제공합니다. 이 포함되지만, 상품성 또는 특정 목적에의 적합성에 대한 묵시적인된 보증이 제한되지 않습니다. 이 문서에서는 만들려면 및 프로시저를 디버깅하는 데 사용되는 도구 및 여기서 설명하는 프로그래밍 언어에 익숙한 사용자를 대상으로 합니다. Microsoft 지원 엔지니어는 사용자에게 도움이 되도록 특정 절차에 대한 기능을 설명할 수 있지만 추가 기능을 제공하거나 특정 요구 사항에 맞도록 프로시저를 구성하지는 이 예제를 수정하지 않습니다.
https://partner.microsoft.com/global/30000104
사용할 수 있는 지원 옵션 및 Microsoft 연락하는 방법에 대한 자세한 내용은 다음 Microsoft 웹 사이트를 방문하십시오.
http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS

참조

Microsoft의 스크립팅 기술에 대한 자세한 내용은 다음 URL에서 Microsoft 개발자 네트워크 웹 사이트를 참조하십시오.
http://msdn2.microsoft.com/en-us/library/ms950396.aspx

속성

기술 자료: 246067 - 마지막 검토: 2007년 8월 8일 수요일 - 수정: 3.3
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Internet Information Services 5.0
키워드:?
kbmt kbinfo KB246067 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.
더 이상 지원되지 않는 제품의 KB 내용에 대한 고지 사항
이 문서에서는 Microsoft에서 더 이상 지원하지 않는 제품에 대해 설명합니다. 따라서 이 문서는 "있는 그대로" 제공되며 업데이트되지 않습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com