Estás trabajando sin conexión, espera a que vuelva la conexión a Internet

Un diccionario secuencias de comandos que se rellena con datos de cadena de ordenación

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 246067
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.
Resumen
Un objeto Dictionary Scripting es el equivalente de una matriz asociativa PERL, donde se almacena información en una matriz formada por claves únicas y datos del elemento. Dado que esta información se almacena sin ordenar, enumerar a través de la matriz devuelve información en el orden en que se almacenó. El propósito de este artículo es definir la función SortDictionary() que ordena el contenido de un objeto de diccionario rellenado con datos de cadena clave o elemento.
Más información
El ejemplo de código siguiente define dos constantes, dictKey y dictItem , que utiliza la función SortDictionary() . La función SortDictionary() toma dos parámetros, un objeto creado previamente como un diccionario de secuencias de comandos y una de las constantes para determinar si debe ordenar por el diccionario claves o elementos.

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				

UN ejemplo de trabajo

En el ejemplo siguiente se utiliza la función anterior.

Nota: Se quitaron todos los comentarios de la función de ordenación real en este ejemplo.

Copie el siguiente código ASP y guardarlo en una carpeta como Sortdemo.asp con secuencias al menos de comandos acceso:
<%@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%>				
al examinar, se debe mostrar el siguiente resultado:
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				

Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin ninguna garantía tanto expresa como implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. Este artículo se supone que está familiarizado con el lenguaje de programación que se muestra y con las herramientas que se utilizan para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento, pero no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos que cumplan sus requisitos específicos. Para obtener más información acerca de las opciones de soporte técnico disponibles y cómo ponerse en contacto con Microsoft, consulte el siguiente sitio Web de Microsoft:
Referencias
Para obtener más información sobre las tecnologías de secuencias de comandos de Microsoft, visite el sitio Web de Microsoft Developer Network en la siguiente dirección URL:
IIS

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 246067 - Última revisión: 08/08/2007 06:48:23 - Revisión: 3.3

Microsoft Internet Information Services 5.0

  • kbmt kbinfo KB246067 KbMtes
Comentarios
>