FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Ordenar un Array por segmentos
Posts: 1054
Joined: Sun Oct 09, 2005 10:41 PM
Ordenar un Array por segmentos
Posted: Fri Jan 09, 2015 02:01 PM

Hola Amigos...
Será posible ordenar un array bidimensional por segmentos o bajo una condición??
la idea es tener una array subagrupado y a la vez ordenado dentro de cada grupo.
Salu2

Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM
Re: Ordenar un Array por segmentos
Posted: Fri Jan 09, 2015 04:04 PM

Hola,

Los arrays son un maravilla en (x)Harbour...

Se puede hacer muchas cosas... quiza no en un solo paso pero si en varios. Quizá no con funciones nativas, pero si con algunas propias.

Expón un ejemplo de tu array y lo que pretendes y vemos qué podemos hacer.

Saludos

Posts: 845
Joined: Sun Oct 09, 2005 05:36 PM
Re: Ordenar un Array por segmentos
Posted: Fri Jan 09, 2015 11:19 PM

quieres algo asi?

aExt := {}
AADD( aExt, { "JUAN", 23,"JAPON", 18 } )
AADD( aExt, { "PEDRO", 13,"JAMAICA",10 } )
AADD( aExt, { "ANA", 26,"ITALIA", 09 } )
AADD( aExt, { "CARLOS",23,"MEXICO", 24 } )

ordenado ascendete por pais
ASORT( aExt,,, { |x,y| x[3] < y[3] } )

ordenado descendente por edad
ASORT( aExt,,, { |x,y| x[2] > y[2] } )

saludos

____________________

Paco
Posts: 1054
Joined: Sun Oct 09, 2005 10:41 PM
Re: Ordenar un Array por segmentos
Posted: Sat Jan 10, 2015 02:48 AM
Gracias por responder... la idea es esta: ordenar por la DETALLE (que esta en desorden) solo lo que pertenece a GRUPO, (los * son parte del array que separan los grupos)
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Ordenar un Array por segmentos
Posted: Sat Jan 10, 2015 09:34 AM

ASort( aData, nil, nil, { |x,y| If( x[ 4 ] == y[ 4 ], x[ 2 ] < y[ 2 ], x[ 4 ] < y[ 4 ] } )

( where 2nd column is DETALLE and 4th column is GROUPO )

Regards



G. N. Rao.

Hyderabad, India

Continue the discussion