Função: ASort
Coloca em ordem tudo ou parte de um array.
ASort ( < aVetor>, [ nInicio], [ nCont], [ bOrdem] ) --> aRetorno
Nome | Tipo | Descrição | Obrigatório | Referência |
aVetor | Vetor | Indica o array cujos elementos serão colocados em ordem. | X | |
nInicio | Numérico | Indica o primeiro dos elementos que serão colocados em ordem. Caso não seja especificado, a posição inicial será um (1). | ||
nCont | Numérico | Indica a quantidade de elementos que serão colocados em ordem. Caso não seja especificado, todos os elementos no array que começam com o elemento inicial serão ordenados. | ||
bOrdem | Bloco de código | Indica o bloco de código opcional utilizado para determinar a ordem que será seguida. Caso não seja especificado, a ordem padrão será ascendente. |
aRetorno
- (vetor)
- Retorna uma referência ao array de origem aVetor.
- Se o parâmetro <bOrdem> não for especificado, a ordem padrão será ascendente ( do menor para o maior ), e o array informado deve conter elementos de um mesmo tipo básico. Valores do tipo D (data) são ordenados cronologicamente, tipos N ( numéricos ) idem, no caso de tipo L (lógico), o valor .F. ( falso ) é considerado menor que o valor .T. ( verdadeiro ) .
- Se a função ASort for utilizada para um array aninhado (multidimensional. ou array de arrays ), o parâmetro bOrdem deve ser informado, para indicar a regra de ordenação a ser realizada, caso contrário, o array não será ordenado.
- O argumento do bloco do código <bOrdem>, quando especificado, é utilizado para determinar a ordem em que os elementos serão colocados. Cada vez que o bloco de código é avaliado, dois elementos do array destino são passados como parâmetro de bloco, e o bloco deverá retornar .T. ( true ) caso os elementos estejam na ordem desejada.
#DEFINE CRLF Chr(13)+Chr(10)
User Function Exemplo()
Local aExemplo := {}
Local cMensagem := ""
//+----------------------------------------------------------------------------+
//|Exemplifica o uso da função ASort |
//+----------------------------------------------------------------------------+
AAdd(aExemplo, "Banana")
AAdd(aExemplo, "Maçã")
AAdd(aExemplo, "Pêra")
AAdd(aExemplo, "Limão")
AAdd(aExemplo, "Abacaxi")
AAdd(aExemplo, "Laranja")
AAdd(aExemplo, "Mamão")
AAdd(aExemplo, "Graviola")
ASort(aExemplo)
cMensagem += "Ordem crescente: " + CRLF
cMensagem += aExemplo[1] + CRLF
cMensagem += aExemplo[2] + CRLF
cMensagem += aExemplo[3] + CRLF
cMensagem += aExemplo[4] + CRLF
cMensagem += aExemplo[5] + CRLF
cMensagem += aExemplo[6] + CRLF
cMensagem += aExemplo[7] + CRLF
cMensagem += aExemplo[8] + CRLF
ASort(aExemplo, , , {|x,y|x > y})
cMensagem += "Ordem decrescente: " + CRLF
cMensagem += aExemplo[1] + CRLF
cMensagem += aExemplo[2] + CRLF
cMensagem += aExemplo[3] + CRLF
cMensagem += aExemplo[4] + CRLF
cMensagem += aExemplo[5] + CRLF
cMensagem += aExemplo[6] + CRLF
cMensagem += aExemplo[7] + CRLF
cMensagem += aExemplo[8] + CRLF
//+----------------------------------------------------------------------------+
//|Apresenta uma mensagem com os resultados obtidos |
//+----------------------------------------------------------------------------+
Return MsgInfo(cMensagem, "Exemplo do ASort")
Exemplo da função ASort
![](https://tdn.totvs.com/download/attachments/6063788/Mon+May+21+15%3A56%3A36+BRT+2012temp?version=1&modificationDate=1337626596449)
Microsiga Protheus 8.11 , Protheus 10
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas