Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Edición de archivos txt (https://www.clubdelphi.com/foros/showthread.php?t=77851)

cardanver 29-02-2012 20:53:08

Edición de archivos txt
 
Hola a todos.
Les comento, realice una aplicación que genera un archivo txt donde guarda todos los campos completados.
Logre que lo genere si no existe o agregue datos si ya existe.
El problema comienza cuando con el inno setup hago el instalador, al ejecutar la aplicación funciona pero no me guarda ni genera el archivo txt.
Que debería modificar, para que al instalarse el aplicativo genere y/o agregue el archivo.
Les adjunto el codigo con el que genero el archivo:

Código Delphi [-]
 

  path: TextFile;
  sArchivo: string;

Begin
   sArchivo := ExtractFilePath( Application.ExeName ) + 'archivo1.txt';
   AssignFile( path, sArchivo );
 if FileExists( sArchivo )
 then
 begin
   Append( path )
 end
 else
 begin
   Rewrite( path );
 end;
 WriteLn( path,MaskEdit1.Text+' ',MaskEdit2.Text+' ',MaskEdit3.Text+' ',MaskEdit4.Text+' ',MaskEdit5.Text+' ',MaskEdit6.Text+' ',MaskEdit7.Text+' ',MaskEdit8.Text+' ',MaskEdit9.Text+' ',MaskEdit10.Text+' '  );
 WriteLn(path,'-------------------------------------------------------------------------0-------------------------------------------------------------------------');
 WriteLn(path,'');
 CloseFile( path );

Desde ya agradezco su ayuda, saludos.

Lord Delfos 29-02-2012 21:11:03

¿Y probaste escribiendo el archivo en otro lado que no sea Archivos de programa? ¿Qué pasa en ese caso? Me huele mucho a que es un problema de permisos al tratar de escribir ahí.

Ya que estamos, no es una buena idea que la aplicación escriba en Archivos de programa. Un windows Vista o 7 (o XP bien configurado creo que también) se va a quejar de eso. Lo recomendado es escribir en Application Data.

roman 29-02-2012 21:12:11

Pues no parece que el InnoSetup tenga nada que ver por sí mismo. Quizá el problema tenga que ver con el lugar donde guardas el archivo. En las versiones recientes de Windows, las aplicaciones ya no pueden escribir tan fácilmente en el directorio donde se instala el ejecutable pues se requieren permisos especiales.

Durante el desarrollo, es posible que el ejecutable esté en un directorio que sí es accesible y por ello no encuntras problemas.

Prueba cambiar el lugar donde ha de residir el archivo por un directorio público.

Edito Se me adelantó Lord Delfos. Más o menos es lo mismo que pensé yo.

// Saludos

rretamar 29-02-2012 21:16:01

NUNCA se deben guardar datos en Archivos de Programa. Fijate que la API del sistema operativo tiene una función que te retorna el trayecto HOME del usuario actual, que normalmente sí es de lectura-y-escritura. Después está el directorio All Users que es accesible desde todos los usuarios y también se puede obtener a partir de la API.

Acá está explicado, con código fuente incluído, la forma de obtener la ubicación real de distintos trayectos:

http://delphi.about.com/od/kbwinshel...FolderPath.htm

cardanver 01-03-2012 14:07:03

Muchas gracias gente por la pronta respuesta.
En el transcurso del dia lo pruebo y les comento.
Saludos a todos.

cardanver 01-03-2012 15:17:45

Gente un millon de gracias ese era el problema, puse la carpeta de instalacion en el escritorio (para probar) y funciono de maravilla.
De nuevo muchas gracias.
Saludos a todos.


La franja horaria es GMT +2. Ahora son las 16:26:34.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi