Barra de progresoRe: ¿JSL proporciona un indicador de "ocupado" similar a una rueda o barra giratoria?
aquí hay un ejemplo de un indicador de progreso hecho en JSL; utiliza un espacio de nombres para encapsular el código.Las últimas líneas son una prueba, intente configurar carga de trabajo más grande o más pequeño.Para un rendimiento fluido, la función de progreso: conjunto debe llamarse con bastante frecuencia. La función Progress:init necesita saber la cantidad total de trabajo que se realizará para obtener el porcentaje correcto.
Editar: adjuntó una copia del JSL, aparentemente el JSL en línea puede no mostrarse correctamente.

progress = New Namespace(
"progress"
);
progress:init = Function( {workload},
progress:TotalWork = workload;
progress:Current = -1;
progress:tick = Tick Seconds();
progress:Window = New Window( "progress",
H List Box(
Spacer Box( size( 20, 20 ) ),
progress:busy = Busy Light( <<SIZE> 1 / 30,
progress:tick = now;
If( pct != progress:Current,
progress:Current = pct;
progress:left << size( progress:Current, 20 );
progress:right << size( 100 - progress:Current, 20 );
progress:text << settext( Char( pct ) || "%" );
);
progress:busy << advance;
Wait( 0 );
)
);
progress:term = Function( {},
progress:Window << closeWindow
);
/////////////////////////
// test
/////////////////////////
workload = 1e6; // 1e6 is about 5 seconds
progress:init( workload );
For( i = 1, i <= workload, i++,
progress:set( i )
);
progress:term();</SIZE>
Re: Barra de progresoBuena pregunta.
La prueba sobre la que pregunta está diseñada para evitar que la pantalla se actualice más de 30 veces por segundo, lo que sería una pérdida de tiempo. De hecho, sin esa prueba, el ejemplo actualizaría la pantalla un millón de veces y tardaría mucho tiempo en ejecutarse.
El ejemplo asume que hay archivos 1e6. Debe escribir un ciclo similar a las últimas 6 líneas de código, procesando su archivo justo antes progreso: conjunto (i) . Y cambie el 1e6 a su número de archivos.
Re: Barra de progresohola craig
Gracias por compartir sobre la barra de progreso.
Me gustaría controlar cuántos archivos se han procesado con la barra de progreso.
Entonces, mi "Carga de trabajo" no se trata de 'tiempo' sino de 'Cuenta'. (N archivos en la carpeta)
¿Significa eso que debería eliminar "progress:tick" y la oración
If( now - progress:tick > 1 / 30,
progress:tick = now;
Podrías darme algunos consejos.
Gracias.