Muitas vezes, é preciso ordernar os resultados da busca a fim de que eles sejam exibidos na ordem do dicionário. Isto pode ser resolvido por meio de um script. Ele irá criar uma ordenação alfabética via VBScript.
VBScript (Visual Basic Script) é uma versão interpretada da linguagem Visual Basic. Ela é usada em Active Server Pages (ASP) para tarefas e construção dinâmica de página HTML; também é usada em Windows Scripting Host (WSH) para facilitar a construção de ferramentas por técnicos ou tarefas automatizadas. Uma de suas funcionalidades disponíveis são os Dicionários.
Antes de tudo, vamos lembrar que Dicionários são objetos frequentemente usados quando alguns itens precisam ser armazenados e recuperados pelo nome. Por exemplo, um dicionário pode conter todas as variáveis definidas pelo sistema, ou então todos os valores associados a uma chave de registro. No entanto, Dicionários só podem um item para cada valor de chave. Isto é, todos os os Dicionários devem ser únicos.
Para utilizar um Dicionário que retorna o resultado de uma busca em formato alfabético, isto é, ABCDE, é preciso criar uma função chamada SortDictionary.
No anexo deste este artigo, você encontrará uma uma aplicação exemplo que criamos para demonstrar como é possível realizar uma ordenação alfabética via VBScript através de um objeto ‘dictionary‘ e da função SortDictionary. Ao final, você encontrará um exemplo do script que pode ser utilizado para executar esta aplicação.
Abaixo o código da função de ordenação da aplicação exemplo:
'######################### Order Dictionary ########################## Function SortDictionary(objDict,intSort) Dim strDict() Dim objKey Dim strKey,strItem Dim X,Y,Z Z = objDict.Count Const dictKey = 1 Const dictItem = 2 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 Set SortDictionary = objDict End If End Function