![]() |
Fichero Ini
Hola a Todos, tengo una aplicación que maneja un fichero INI que esta en el mismo directorio de la aplicación donde guardo unos parametros de configuración. Al entrar en la aplicación el programa lee los parametros y al salir los vuelve a guardar.
Todo funciona correctamente. Pero en el ordenador de una usuario copio el fichero de otro ordenador y la aplicación funciona correctamente. Pero al salir y volver a entrar al comprobar si existe el fichero el programa me retorna que no existe. Voy a la carpeta y el fichero esta en su sitio con los valores que tiene que tener, pero la funcion FileExists me dice que no existe. Si copio el fichero de otro equipo encima de el el sistema me dice que si quiero reemplarlo le digo que si y el programa funciona corretamente, pero si salgo y vuelvo a entrar me dice que el fichero no existe y lo estoy viendo. En otros equipos me funciona correctamente. Por cierto el usuario tiene windows XP y como antivirus el PANDA. Agradecería que alguien me diera alguna pista sobre este tema. Un Saludo y gracias a todos. Agur :-) |
Hola,
No estoy seguro, pero, es posible que la función "FileExists" no funcione cuando se trata de archivos que están en otro ordenador... si es a eso a lo que te refieres, que no me queda claro (no digo que no te expliques bien, digo que a mí no me queda claro, ojo). Tal vez podráis probar a abrir el archivo... si puedes abrir el archivo es que el archivo existe... vamos... digo yo... Por cierto, me hizo mucha gracia tu comentario: Cita:
|
Tal vez algun tema de atributos. ¿Mayúsculas/Minúsculas? (aunque me suena raro). ¿Has probado a realizar lo mismo desactivando los programas de seguridad? Me he encontrado algunos sistemas con antivirus que tenían problemas con ficheros de extensión INI.
|
Hola y gracias, el primer sorprendido soy yo. El fichero esta en el mismo ordenador donde esta la aplicacion es un camino 'c:\programa\configuraciones.ini'. Ya se que es gracioso, estoy viendo el fichero pero la función me dice que no existe, como ya he dicho si copi el fichero encima y ejecuto la funcion devuelve que si existe y funciona. Pero al salir y volver a entrar vuelve a decir que no existe.
He probado a poner el fichero como solo lectura y funciona correctamente, pero claro no puedo grabar lo que yo quiero. Tengo el presentimiento que es un fichero que tiene mucho moviemiento y que por algo el antivirus o el sistema lo este bloqueando. Como ya he dicho en otros ordenadores funciona correctamente. Solo me pasa en este. Gracias otra vez. |
Hola,
Pues... parecerá una tontería, pero, guarda la ruta del archivo en una variable y, justo antes de ejecutar la función "FileExists" muéstrate a ti mismo (con "ShowMessage", por ejemplo) dicha variable, o sea, la ruta del archivo,... a ver si es que algo está ocurriendo entre medias y al cabo la ruta que se trata de comprobar, efectivamente, no existe... Es extraño, puesto que dices que sólo te ocurre en un sistema en concreto, pero, personalmente, no se me ocurre otra cosa por el momento... |
Lo primero Gracias otra vez. Lo de la variable ya lo he hecho y el camino es el correcto. Pero me dice que no existe, como ya he dicho si copio el fichero encima otra vez el programa me retorna el mismo camino siempre y funciona, en el momento en que grabo en el algo parece que se estropea, utilizo TINIFILE para manejarlo.
Ya se que parece de broma pero creo que esta todo correcto, hay algo que me esta denegando el acceso a ese fichero. Un Saludo y gracias otra vez. |
Prueba lo mismo pero cambiando la extensión del fichero.
Que se trabaje con TIniFile no significa que la extension tenga que ser INI. Utiliza otra (por probar). |
Hola a todos otra vez. Cambiando la extensión del fichero me funciona correctamente. Pero el problema es que el programa esta instalado en muchos clientes y ya tienen este fichero .ini creado.
Un Saludo y gracias a todos. |
Normalmente se pueden modificar los antivirus para que "dejen tranquilos" a ficheros con determinadas extensiones.
Otra cosa que yo haría es para la próxima versión hacer el cambio de extensión. Algo así: (1) Al guardar, guardas con extensión .cnf (por decir algo) (2) Al abrir, primero buscas el fichero .cnf y si no existe buscas el .INI (3) Dentro de un tiempo cuando todos los clientes estén con la nueva versión ya puedes eliminar el código que busca ambos ficheros. |
La franja horaria es GMT +2. Ahora son las 05:32:40. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi