Leer archivos recientemente modificados

Estoy haciendo mi primera aplicación en PowerBuilder. Ésta se ejecuta periódicamente y va procesando correo electrónico.
Además, necesito loguear cuántos correos ha procesado. Para esto, la aplicación abre un archivo, lee el número que ahí está anotado, suma el número de correos que ha procesado en la presenta ejecución y actualiza el archivo con el nuevo número.
Sin embargo, cuando ejecuto la aplicación, únicamente se guarda en el archivo el número de la última ejecución, ignorando lo que estaba antes o cualquier modificación que haga. Pero cuando hago cualquier modificación en el código del script y lo recompilo, el contenido del archivo sí se actualiza, pero sólo una vez, hasta que vuelva a editar y compilar el script. Me da la idea que tiene en un cache el contenido del archivo, para no tener que leerlo cada vez. Pero yo si necesito que lo haga.
Por facilidad, adjunto un código muy simple que tiene un problema similar: la lectura de parámetros desde un archivo. Si edito ese archivo, los cambios no son reflejados inmediatamente, ¿cómo puedo hacer que el programa refleje este cambio tan pronto como se cambia el archivo?
constant string archivoParametros = "parametros.ini"
string caseSensitive = ProfileString(archivoParametros,"Configuracion","CaseSensitive", "")
if isnumber(caseSensitive) and Long(caseSensitive)>0 then
 MessageBox(caseSensitive,"caseSensitive")
else
 MessageBox(caseSensitive,"NO caseSensitive")
end if

parametros.ini
[Configuracion]
CaseSensitive=1

Al editar parametros.ini, poner CaseSensitive=0 y ejecutar de inmediato el script. Sigo obteniendo el valor de 1 y, por lo tanto, leo "caseSensitive" en el message box. Esto se corrige si recompilo el script.

1 Respuesta

Respuesta
1
Intentalo de esta forma:
if caseSensitive <> '0' then
  messagebox(caseSensitive,'caseSensitive)
else
  messagebox(caseSensitive,'NOcaseSensitive)
end if
Recuerda que, para que el sistema refleje el cambio que has hecho tendrás que refrescar la ventana o mejor dicho cerrar la ventana y volver a abrir.
Gracias por tu respuesta!
En realidad, en mi caso no es muy importante si considero falso sólo al número 0 como sugieres o también a todos los negativos y no numéricos como puse en el ejemplo.
Lo que necesito es leer cambios recientemente hechos a un archivo, sin tener que cerrar y abrir la aplicación. ¿Hay alguna forma de hacer eso en Power Builder? ¿Borrar el cache de archivo abierto o algo así?
Gracias,
Jorge
Si el archivo lo lees desde una ventana, entonces no es necesario cerrar el aplicativo solo la ventana, ahora si no deseas borrar la ventana lo que puedes hacer es un botón donde refresques la información o puedes usar el evento timer.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas