Como dijo nuestro querido Jack, "vayamos por partes":
Cita:
Empezado por seoane
Se me ocurren varias posibilidades, la primera es hacer una aplicación de consola, con sus writeln , me parece que se ajusta bastante bien a lo que quieres. Es mas, nada te impide utilizar en la misma aplicación la consola y ventanas, por si mas adelante en tu aplicación necesitas ventanas.
|
Tienes toda la razón. No sé por qué no se me había ocurrido antes. Puede que haya sido la emoción de volver a utilizar el editor de Delphi después de tantos años, con sus botoncitos, su generador de ventanas, su RAD... Se me olvidó que puedo crear una aplicación de consola corriente y moliente.
Cita:
Empezado por Bicho
Yo casi todas las aplicaciones que realizo en mi trabajo son de este tipo, o están en marcha todo el día funcionando solos, o se ejecutan a una hora determinada, el programador de tareas lo abre, y cuando termina, se cierra la aplicación y hasta la próxima ejecución.
Bien, no me parece buena idea lo de guardar el log al final de la ejecución, sino siempre que añadas algo.
Así tengo una función, a la que le pasas como parámetro el texto que quieres guardar (como muy bien has hecho tú tambien), y esta función abre el fichero de log, inserta esa linea, junto con la fecha y hora del sistema (usando formatdatetime para una mejor lectura), y graba el fichero.
Es un fichero de texto y su acceso, como sabes, es muy rápido, y los programas no relentizan nada.
Lo digo, porque así siempre tendrás el fichero con el log actualizado, si lo guardas en un memo, por ejemplo y al final lo guardas, te arriesgas a que por cualquier cosa, se cierre de mala manera (KillTask, apagón, etc) y pierdes el log; sabrás que ha ido mal y no tendrás el log para averiguarlo.
|
También tú tienes razón, me había olvidado de que el programa puede morir por muchos motivos.
Decididamente lo haré por consola y guardando en el archivo línea a línea, en lugar de usar el TMemo.
Por cierto, para hacer la configuración voy a tener que mostrar una ventana. ¿Servirá algo así?
Código Delphi
[-]
BEGIN
Application.Initialize;
IF argv[1] = "-config" THEN
WITH TVentanaConfig.Create DO
BEGIN
ShowModal;
WHILE NOT Acepta DO
Application.ProcessMessages;
GuardaConfiguracion;
Free;
END
ELSE
LeeConfiguracion;
Trabajo;
END;
Evidentemente, "Acepta" es una propiedad de la ventana que se pone a TRUE al pulsar el botón aceptar.