AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Funciones WLanguage / Funciones estándar / Funciones de colas, pilas, listas y arrays / Funciones de arrays
  • Varios
  • Ejemplos de procedimientos de clasificación personalizados
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Clasifica un WLanguage array. Se pueden realizar las siguientes clasificaciones:
  • Clasificar una array unidimensional de elementos simples.
  • Clasificar una array bidimensional de elementos simples según una o más columnas.
  • Clasificar una array unidimensional de clases o estructuras de acuerdo a 1 o más miembros.
  • WEBDEV - Código Servidor Ordenar un array de registros de acuerdo a 1 o más ítems.
  • Ordena una array unidimensional especificando una comparison Procedure.
Observación: Esta función es equivalente a la función clasificar.
// Sort a one-dimensional array
MyArray is array of 2 int
MyArray[1] = 4
MyArray[2] = 1
ArraySort(MyArray, asAscending)
Trace(MyArray[1], MyArray[2])
// Displays "1" then "4"
// Sort a two-dimensional array on the 2nd column
ArraySort(MyArray, asAscending, 2)
// Sort a two-dimensional array on the 2nd column
// (ascending) and the 3rd column (descending)
ArraySort(MyArray, asColumn, "2;-3")
// Sort an array by using a comparison procedure
ArraySort(MyArray, asFunction, Compare)
 
// Comparison procedure
INTERNAL PROCEDURE Compare(Element1, Element2)
IF Element1.Member < Element2.Member THEN RESULT -1
IF Element1.Member > Element2.Member THEN RESULT 1
RESULT 0
Sintaxis

Clasificar una array unidimensional de elementos simples Ocultar los detalles

ArraySort(<WLanguage array> [, <Type of sort>])
<WLanguage array>: Array
  • Nombre de la variable de tipo Array a utilizar. Este array debe ser unidimensional.
    Este array también puede corresponder a un array de elementos simples de una variable avanzada (por ejemplo, array "Grupo" en las variables de tipo gglContact).
  • Nombre del asociativo Array Variable a utilizar.
    PHP El asociativo arrays no puede ser clasificado en esta versión.
<Type of sort>: Constante opcional de tipo Integer
Tipo de ordenación a realizar:
asAscending
(Valor predeterminado)
Orden ascendente.
Para un array asociativo: Clasificando los elementos de la array asociativa:
  • si se especifica la constante asKey: La clasificación se realiza en orden ascendente según las claves. En el caso de equality entre dos claves, los valores se ordenan según el valor ascendente si los valores pueden ser comparados. Si los valores no se pueden comparar, se mantiene el orden inicial.
  • si no se especifica la constante asKey: La clasificación se realiza en orden ascendente según los valores. En el caso de equality entre dos valores, los valores se ordenan según la clave ascendente.
asDescendingOrden descendente.
Para un array asociativo: Clasificando los elementos de la array asociativa:
  • si se especifica la constante asKey: La clasificación se realiza en orden descendente según las claves. En el caso de equality entre dos claves, los valores se ordenan según el valor descendente si los valores pueden ser comparados. Si los valores no se pueden comparar, se mantiene el orden inicial.
  • si no se especifica la constante asKey: La clasificación se realiza en orden descendente según los valores. En el caso de equality entre dos valores, los valores se ordenan según la clave descendente.

El tipo de clasificación se puede combinar con una o más opciones de clasificación:
asKeyarray asociativa ordenada según el orden clave. Si no se especifica esta constante, la array asociativa se ordena según el orden de los valores.
Esta función es useful en el asociativo arrays solamente.
tccIgnorar la puntuación y el espacioArray ordenado sin tener en cuenta los caracteres de espacio y los caracteres de puntuación.
Esta opción es useful para arrays de cadenas.
WEBDEV - Código Navegador Esta constante no está disponible.
tccIgnoreAccentArray ordenado ignorando los caracteres acentuados.
Esta opción es useful para arrays de cadenas.
WEBDEV - Código Navegador Esta constante no está disponible.
tccIgnoreCaseArray ordenada ignorando el caso.
Esta opción es useful para el arrays de las cadenas de caracteres.
tccIgnoreInsideSpaceArray ordenado sin tener en cuenta los caracteres de espacio que se encuentran dentro de las cadenas de texto.
Esta opción es useful para el arrays de las cadenas de caracteres.
tccIgnoreSpaceArray ordenado sin tener en cuenta los caracteres de espacio que se encuentran al principio y al final de las cadenas de texto..
Esta opción es useful para el arrays de las cadenas de caracteres.
tccLexicographicOrderArray ordenada según el orden lingüístico.
Esta opción es useful para arrays de cadenas.
WEBDEV - Código Navegador Esta constante no está disponible.
tccRespectNumericArray ordenada según el orden de los valores numéricos.
Esta opción es useful para arrays de cadenas.
WEBDEV - Código Navegador Esta constante no está disponible.

PHP Las constantes utilizadas para especificar las opciones de clasificación no están disponibles.

Clasificando una array bidimensional de elementos simples según una columna Ocultar los detalles

ArraySort(<WLanguage array> [, <Type of sort>] , <Column>)
<WLanguage array>: Array
Nombre de la variable de tipo Array a utilizar. Este array debe ser bidimensional.
Este array también puede corresponder a un array bidimensional de un tipo avanzado (por ejemplo, ordenar una variable de tipo xlsDocument según los valores de una columna).
<Type of sort>: Constante opcional de tipo Integer
Tipo de ordenación a realizar:
asAscending
(Valor predeterminado)
Orden ascendente
asDescendingOrden descendente

El tipo de clasificación se puede combinar con una o más opciones de clasificación:
tccIgnorar la puntuación y el espacioArray ordenado sin tener en cuenta los caracteres de espacio y los caracteres de puntuación.
Esta opción es useful para arrays de cadenas.
WEBDEV - Código Navegador Esta constante no está disponible.
tccIgnoreAccentArray ordenado ignorando los caracteres acentuados.
Esta opción es useful para arrays de cadenas.
WEBDEV - Código Navegador Esta constante no está disponible.
tccIgnoreCaseArray ordenada ignorando el caso.
Esta opción es useful para el arrays de las cadenas de caracteres.
tccIgnoreInsideSpaceArray ordenado sin tener en cuenta los caracteres de espacio que se encuentran dentro de las cadenas de texto.
Esta opción es useful para el arrays de las cadenas de caracteres.
tccIgnoreSpaceArray ordenado sin tener en cuenta los caracteres de espacio que se encuentran al principio y al final de las cadenas de texto..
Esta opción es useful para el arrays de las cadenas de caracteres.
tccLexicographicOrderArray ordenada según el orden lingüístico.
Esta opción es useful para arrays de cadenas.
WEBDEV - Código Navegador Esta constante no está disponible.
tccRespectNumericArray ordenada según el orden de los valores numéricos.
Esta opción es useful para arrays de cadenas.
WEBDEV - Código Navegador Esta constante no está disponible.

PHP Las constantes utilizadas para especificar las opciones de clasificación no están disponibles.
WEBDEV - Código Navegador Este parámetro es obligatorio.
<Column>: Integro
Índice de la columna donde se realizará la ordenación.

Clasificando una array bidimensional de elementos simples según varias columnas Ocultar los detalles

ArraySort(<WLanguage array> , <asColumn> , <Columns>)
<WLanguage array>: Array
Nombre de la variable de tipo Array a utilizar. Este array debe ser bidimensional.
Este array también puede corresponder a un array bidimensional de tipo avanzado (ordenación realizada sobre un Variable de tipo xlsDocument según los valores de una o varias columnas, por ejemplo).
<asColumn>: Constante
asColumn: Constante utilizada para clasificar una array bidimensional de elementos simples según varias columnas.
La constante asColumn se puede combinar con una o más opciones de clasificación:
tccIgnorar la puntuación y el espacioArray ordenado sin tener en cuenta los caracteres de espacio y los caracteres de puntuación.
Esta opción se aplica a todas las columnas en las que se realiza la clasificación.
Esta opción es useful para arrays de cadenas.
WEBDEV - Código Navegador Esta constante no está disponible.
tccIgnoreAccentArray ordenado ignorando los caracteres acentuados.
Esta opción se aplica a todas las columnas en las que se realiza la clasificación.
Esta opción es useful para arrays de cadenas.
WEBDEV - Código Navegador Esta constante no está disponible.
tccIgnoreCaseArray ordenada ignorando el caso.
Esta opción se aplica a todas las columnas en las que se realiza la clasificación.
Esta opción es useful para el arrays de las cadenas de caracteres.
tccIgnoreInsideSpaceArray ordenado sin tener en cuenta los caracteres de espacio que se encuentran dentro de las cadenas de texto.
Esta opción se aplica a todas las columnas en las que se realiza la clasificación.
Esta opción es useful para el arrays de las cadenas de caracteres.
tccIgnoreSpaceArray ordenado sin tener en cuenta los caracteres de espacio que se encuentran al principio y al final de las cadenas de texto..
Esta opción se aplica a todas las columnas en las que se realiza la clasificación.
Esta opción es useful para el arrays de las cadenas de caracteres.
tccLexicographicOrderArray ordenada según el orden lingüístico.
Esta opción se aplica a todas las columnas en las que se realiza la clasificación.
Esta opción es useful para arrays de cadenas.
WEBDEV - Código Navegador Esta constante no está disponible.
tccRespectNumericArray ordenada según el orden de los valores numéricos.
Esta opción se aplica a todas las columnas en las que se realiza la clasificación.
Esta opción es useful para arrays de cadenas.
WEBDEV - Código Navegador Esta constante no está disponible.

PHP Las constantes utilizadas para especificar las opciones de clasificación no están disponibles.
<Columns>: Cadena de caracteres
Lista de columnas en las que se debe realizar la clasificación. Las diferentes columnas deben estar separadas por punto y coma. Para especificar la dirección de clasificación, la índice de la columna debe ir precedida de:
  • "+" (o nada) para una ordenación ascendente.
  • "-" para una clasificación descendente.
    Por ejemplo: "2,-3" para realizar una ordenación ascendente en la segunda columna y una ordenación descendente en la tercera columna.

Clasificar una array unidimensional de clases, estructuras o registros Ocultar los detalles

ArraySort(<WLanguage array> , <asMember> , <Members>)
<WLanguage array>: Array
  • Nombre de la variable de tipo Array a utilizar. Este array debe ser unidimensional. Esta array puede ser:
    • una array de clases,
    • el array de las estructuras,
    • una array de tipos avanzados,
    • WEBDEV - Código Servidor una array de registros.
  • Nombre del asociativo Array Variable a utilizar. Esta array puede ser:
    • una array asociativa de clases,
    • una array asociativa de estructuras,
    • una array asociativa de tipos avanzados,
      PHP El asociativo arrays no puede ser clasificado en esta versión.
    • WEBDEV - Código Servidor una array asociativa de registros.
<asMember>: Constante
asMember: Constante utilizada para clasificar un array unidimensional de clases, estructuras o registros.
Para un array asociativo: Los elementos de la array asociativa se clasifican según el orden de valores para los miembros especificados. En el caso de equality entre dos valores, los valores se ordenan según la clave ascendente o descendente (según la dirección de ordenación del primer miembro).
La constante asMember se puede combinar con una o más opciones de clasificación:
tccIgnorar la puntuación y el espacioArray ordenado sin tener en cuenta los caracteres de espacio y los caracteres de puntuación.
Esta opción se aplica a todos los miembros en los que se realiza la ordenación.
Esta opción es useful para los miembros de la "cadena de caracteres"..
WEBDEV - Código Navegador Esta constante no está disponible.
tccIgnoreAccentArray ordenado ignorando los caracteres acentuados.
Esta opción se aplica a todos los miembros en los que se realiza la ordenación.
Esta opción es useful para los miembros de la "cadena de caracteres"..
WEBDEV - Código Navegador Esta constante no está disponible.
tccIgnoreCaseArray ordenada ignorando el caso.
Esta opción se aplica a todos los miembros en los que se realiza la ordenación.
Esta opción es useful para los miembros "cadena de caracteres".
tccIgnoreInsideSpaceArray ordenado sin tener en cuenta los caracteres de espacio que se encuentran dentro de las cadenas de texto.
Esta opción se aplica a todos los miembros en los que se realiza la ordenación.
Esta opción es useful para los miembros "cadena de caracteres".
tccIgnoreSpaceArray ordenado sin tener en cuenta los caracteres de espacio que se encuentran al principio y al final de las cadenas de texto..
Esta opción se aplica a todos los miembros en los que se realiza la ordenación.
Esta opción es useful para los miembros "cadena de caracteres".
tccLexicographicOrderArray ordenada según el orden lingüístico.
Esta opción se aplica a todos los miembros en los que se realiza la ordenación.
Esta opción es useful para los miembros de la "cadena de caracteres"..
WEBDEV - Código Navegador Esta constante no está disponible.
tccRespectNumericArray ordenada según el orden de los valores numéricos.
Esta opción se aplica a todos los miembros en los que se realiza la ordenación.
Esta opción es useful para los miembros de la "cadena de caracteres"..
WEBDEV - Código Navegador Esta constante no está disponible.

PHP Las constantes utilizadas para especificar las opciones de clasificación no están disponibles.
<Members>: Cadena de caracteres
Nombre de los miembros utilizados como criterios de clasificación. Si la clasificación se realiza en varios miembros, sus nombres deben estar separados por un punto y coma.. Para especificar la dirección de ordenación, el nombre del miembro debe ir precedido de:
  • "+" (o nada) para una ordenación ascendente.
  • "-" para una clasificación descendente.
  • "." o ":" para realizar una ordenación en propiedades encadenadas.
    Por ejemplo:
    - "Miembro1;-Miembro3" para realizar una ordenación ascendente en el miembro Miembro1 y una ordenación descendente en el miembro Miembro3..
    - "Fuente.URL" para realizar una ordenación en la URL Property de la Fuente Property.
WEBDEV - Código Servidor Ordenando un array de registros: Nombre de las posiciones utilizadas como criterios de clasificación.

Clasificar un array unidimensional con una especie de Procedure Ocultar los detalles

ArraySort(<WLanguage array> , <asFunction> , <WLanguage sorting procedure>)
<WLanguage array>: Array
  • Nombre de la variable de tipo Array a utilizar. Este array debe ser unidimensional. Esta array puede ser una array de tipos avanzados.
  • Nombre del asociativo Array Variable a utilizar.
    PHP El asociativo arrays no puede ser clasificado en esta versión.
<asFunction>: Constante
asFunction: Constante utilizada para clasificar un array unidimensional con una especie de Procedure.
<WLanguage sorting procedure>: Nombre de Procedure
Nombre de la Procedure utilizada para ordenar los elementos de array.
  • Para un array unidimensional: WLanguage Procedure en el siguiente formato:
    PROCEDURE MyProcedure(Element1, Element2)

    El mecanismo de orden llama automáticamente a este procedimiento para comparar los elementos entre sí, de dos en dos.
    Si el elemento 1 debe encontrarse antes que el elemento 2 en el orden de clasificación, la Procedure debe regresar -1.
    Si el elemento 1 debe encontrarse después del elemento 2 en el orden de clasificación, la Procedure debe devolver 1.
    Si el elemento 1 y el elemento 2 son idénticos, la Procedure debe devolver 0.
  • Para un array asociativo: WLanguage Procedure en el siguiente formato:
    PROCEDURE MyProcedure(Value1, Key1, Value2, Key2)

    El mecanismo de orden llama automáticamente a este procedimiento para comparar los elementos entre sí, de dos en dos. La comparison se puede realizar en la clase Procedure según los valores o según las claves.
    Si el elemento 1 debe encontrarse antes que el elemento 2 en el orden de clasificación, la Procedure debe regresar -1.
    Si el elemento 1 debe encontrarse después del elemento 2 en el orden de clasificación, la Procedure debe devolver 1.
    Si el elemento 1 y el elemento 2 son idénticos, la Procedure debe devolver 0.
Observaciones

Varios

  • Esta función no se puede utilizar con la arrays fija.
  • array dinámica de variantes: Sólo se puede utilizar una clase personalizada (con una clase Procedure).
  • Esta función no se puede utilizar con la arrays de las cadenas UNICODE.
  • Para añadir un elemento en una array ordenada, utilice ArrayAddSorted.
  • Esta función se puede utilizar en la arrays de variables avanzadas.
  • Esta función está disponible para la función asociativa arrays.
    PHP Esta funcionalidad no está disponible.

Ejemplos de procedimientos de clasificación personalizados

Ejemplo de Procedure usado para comparar 2 números enteros:
PROCEDURE MyProcedure(nInt1, nInt2)
IF nInt1 > nInt2 THEN RESULT 1
IF nInt1 < nInt2 THEN RESULT -1
RESULT 0
Ejemplo de una Procedure utilizada para comparar dos elementos en una array de estructuras:
PROCEDURE MyProcedure(stVar1, stVar2)
IF stVar1:nInt > stVar2:nInt THEN RESULT 1
IF stVar1:nInt < stVar2:nInt THEN RESULT -1
RESULT 0
Componente: wd290vm.dll
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
exemplo arraysort composto
https://windevdesenvolvimento.blogspot.com/2021/04/dicas-3315-windev-webdev-mobile-queria.html
https://youtu.be/TrdE3Z9Akp0

empresa_estrutura is Structure
id is int
nome is string
END

linha_empresa is empresa_estrutura
array_empresa is array of empresa_estrutura

// VOU ADICIONAR MANUALMENTE
linha_empresa.id = "5"
linha_empresa.nome = "amarildo"
ArrayAdd(array_empresa, linha_empresa)

linha_empresa.id = "1"
linha_empresa.nome = "xamarildo"
ArrayAdd(array_empresa, linha_empresa)

linha_empresa.id = "1"
linha_empresa.nome = "cesar"
ArrayAdd(array_empresa, linha_empresa)

ArraySort(array_empresa,asMember,"id;nome")

// lendo cada elemento dentro do array e mostrando ele
TABLE_clientes.DeleteAll()
FOR EACH ELEMENT stLinha OF array_empresa
TABLE_clientes.AddLine(stLinha.id,stLinha.nome)
END

amarildo
27 04 2021

Última modificación: 07/04/2023

Señalar un error o enviar una sugerencia | Ayuda local