文字列データを設定するスクリプト辞書の並べ替え

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:246067
サポート期間が終了した「サポート技術情報」資料に関する免責事項
この資料は、マイクロソフトでサポートされていない製品について記述したものです。そのため、この資料は現状ベースで提供されており、今後更新されることはありません。
概要
スクリプトの Dictionary オブジェクトは、Perl 連想配列のと同じです情報が一意のキーと項目のデータで構成される配列に格納されます。 並べ替えずにこの情報が格納される、ため、配列の反復情報を返しますが格納されているその順序。 この資料の目的は、キーまたは項目の文字列データを格納するディクショナリ オブジェクトの内容を並べ替えする SortDictionary() 関数を定義します。
詳細
dictKey dictItem SortDictionary() 関数で使用される、2 つの定数を定義するコード例を次に示します。 SortDictionary() 関数は 2 つのパラメーターをスクリプトの辞書とする辞書のキーまたはアイテムを並べ替えるかどうかの定数のいずれかとして作成したオブジェクトを受け取ります。

Const dictKey  = 1Const dictItem = 2Function 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 IfEnd 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=Delta1=Foxtrot4=Bravo2=Echo6=Alpha5=CharlieBy Key:1=Foxtrot2=Echo3=Delta4=Bravo5=Charlie6=AlphaBy Item:Alpha=6Bravo=4Charlie=5Delta=3Echo=2Foxtrot=1				

マイクロソフトは提供プログラミング言語の使用方法の一例としてのみ、姿表現または暗黙に提供します。 これはに含まれますに、黙示または商品性および特定目的に対する適合性の黙示保証は一切制限はありません。 この資料ではであると見なすは、例示されているプログラミング言語を作成したりプロシージャをデバッグするためのツールと使い慣れた。 マイクロソフト サポート エンジニアに、特定のプロシージャの機能について説明する役立ちますが追加機能を提供する構築手順、特定の要件を次の例は変更されません。 使用可能なサポート オプションおよびマイクロソフトの問い合わせ先の詳細については、次のマイクロソフト Web サイトを参照してください:
関連情報
マイクロソフトのスクリプト テクノロジの詳細については、マイクロソフト開発者向けネットワークの Web サイト、次の URL を参照してください。
IIS

警告: この記事は自動翻訳されています

プロパティ

文書番号:246067 - 最終更新日: 08/08/2007 06:48:00 - リビジョン: 3.3

Microsoft Internet Information Services 5.0

  • kbinfo kbmt KB246067 KbMtja
フィードバック