FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Asort con meter
Posts: 350
Joined: Wed Nov 02, 2005 03:28 PM
Asort con meter
Posted: Thu Nov 10, 2016 11:43 AM

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.

Saludos,
Regards,

Jose Luis Alepuz
joseluis@mancomputer.com
www.mancomputer.com
Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM
Re: Asort con meter
Posted: Thu Nov 10, 2016 11:48 AM

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..."

Posts: 350
Joined: Wed Nov 02, 2005 03:28 PM
Re: Asort con meter
Posted: Thu Nov 10, 2016 12:24 PM

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.

Saludos,
Regards,

Jose Luis Alepuz
joseluis@mancomputer.com
www.mancomputer.com
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Asort con meter
Posted: Fri Nov 11, 2016 11:53 AM
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
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM
Re: Asort con meter
Posted: Mon Nov 14, 2016 08:55 AM

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

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Asort con meter
Posted: Mon Nov 14, 2016 09:11 AM
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 (fw): Select all Collapse
#include "FiveWin.ch"

function Main()

   local nIndex := 1

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

return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Asort con meter
Posted: Mon Nov 14, 2016 09:12 AM

Estos ejemplos se pueden probar desde Fivedit sin necesidad de crear un PRG ni tener que construir el EXE :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 350
Joined: Wed Nov 02, 2005 03:28 PM
Re: Asort con meter
Posted: Tue Nov 15, 2016 11:04 AM

Muchas Gracias por vuestra ayuda,

Saludos,
Regards,

Jose Luis Alepuz
joseluis@mancomputer.com
www.mancomputer.com

Continue the discussion