Page 1 of 1

Asort con meter

PostPosted: Thu Nov 10, 2016 11:43 am
by Garbi
Hola estoy ordenando una tabla, pero el ordenador del cliente es lento y me gustaría añadirle un meter para que viera el progreso y no se pusiera "nervioso" pero nunca lo he hecho.

¿Alguien puede ponerme algún ejemplo?

Muchas Gracias de antemano.

Re: Asort con meter

PostPosted: Thu Nov 10, 2016 11:48 am
by hmpaquito
No creo que se pueda hacer, porque para ello habría que tener información que aSort() no da: el nº de elemento por el que va en la ordenación.

Un workaround es utilizar MsgRun() o similar y al menos poner un texto "Espere..."

Re: Asort con meter

PostPosted: Thu Nov 10, 2016 12:24 pm
by Garbi
Ok. Eso había pensado yo sobre el meter y Asort, pero por si acaso.

Probare con MsgRun() así por lo menos saldré del paso.

Gracias.

Re: Asort con meter

PostPosted: Fri Nov 11, 2016 11:53 am
by Antonio Linares
Paco,

Como ASort() permite evaluar un bloque de código, desde él se podria incrementar una variable estática externa que indicaría el elemento por el que va

Creo que se podria hacer asi

http://www.fivetechsoft.com/harbour-docs/api.html#asort

Re: Asort con meter

PostPosted: Mon Nov 14, 2016 8:55 am
by hmpaquito
Antonio,

Me parece que Asort() utiliza el algoritmo de la burbuja, no estoy muy seguro.
Tampoco estoy seguro que el algoritmo de la burbuja use tantas comparaciones como elementos tiene el array.

Saludos

Re: Asort con meter

PostPosted: Mon Nov 14, 2016 9:11 am
by Antonio Linares
Paco,

Este ejemplo funciona, pero la sorpresa es que el bloque de código se evalúa 10 veces, puesto que hacen falta
más iteraciones para ordenarlos. Haria falta una primera pasada para contar el total de iteraciones y una segunda
para mostrar el meter, lo que no lo haría muy práctico:

Code: Select all  Expand view
#include "FiveWin.ch"

function Main()

   local nIndex := 1

   ASort( { 9, 6, 3, 5, 2, 1 },,, { | x, y | MsgInfo( nIndex++ ), x < y } )

return nil

Re: Asort con meter

PostPosted: Mon Nov 14, 2016 9:12 am
by Antonio Linares
Estos ejemplos se pueden probar desde Fivedit sin necesidad de crear un PRG ni tener que construir el EXE :-)

Re: Asort con meter

PostPosted: Tue Nov 15, 2016 11:04 am
by Garbi
Muchas Gracias por vuestra ayuda,