Realizando ordenação alfabética via VBScript com dicionário.

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

 

Artigos Relacionados:


Anexos:

SortingAlgorithm.zip

Este artigo foi útil? Was this post helpful?
Yes0
No0

Deixe seu Comentário

Seu endereço de e-mail não será publicado. Campos marcados com asterisco são obrigatórios *