Asort con meter

Asort con meter

Postby Garbi » 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
Garbi
 
Posts: 291
Joined: Wed Nov 02, 2005 3:28 pm

Re: Asort con meter

Postby hmpaquito » 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..."
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: Asort con meter

Postby Garbi » 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
Garbi
 
Posts: 291
Joined: Wed Nov 02, 2005 3:28 pm

Re: Asort con meter

Postby Antonio Linares » 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
User avatar
Antonio Linares
Site Admin
 
Posts: 41315
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Asort con meter

Postby hmpaquito » Mon Nov 14, 2016 8: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
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: Asort con meter

Postby Antonio Linares » Mon Nov 14, 2016 9: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: 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
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41315
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Asort con meter

Postby Antonio Linares » Mon Nov 14, 2016 9: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
User avatar
Antonio Linares
Site Admin
 
Posts: 41315
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Asort con meter

Postby Garbi » Tue Nov 15, 2016 11:04 am

Muchas Gracias por vuestra ayuda,
Saludos,
Regards,

Jose Luis Alepuz
joseluis@mancomputer.com
www.mancomputer.com
Garbi
 
Posts: 291
Joined: Wed Nov 02, 2005 3:28 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 84 guests