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.
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.
Respuesta de achafio
1