Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problema al abrir ini por segunda vez (https://www.clubdelphi.com/foros/showthread.php?t=58027)

totote 05-07-2008 14:47:25

Problema al abrir ini por segunda vez
 
Buenas gente, tengo un archivo ini para la configuración de conexión de mi aplicación, al ejecutarlo por primera vez anda bien, pero al abrirlo por segunda vez me toma el valor por defecto, al archivo no lo abro en el formulario principal sino que en una ventana donde necesito saber que tipo de conexion es, aca dejo el código:

Código Delphi [-]
procedure TfrmCurso.FormCreate(Sender: TObject);
begin
  inherited;
  ini:= TIniFile.Create(GetCurrentDir + '\webadmin.conf');
  TipoConexion:= ini.ReadInteger('Conexion','Tipo',1);
  Host:= ini.ReadString('Conexion FTP','Host','');
  User:= ini.ReadString('Conexion FTP','User','');
  Pass:= ini.ReadString('Conexion FTP','Pass','');
  PathRemota:= ini.ReadString('Conexion FTP','Path','/');
  Path:= ini.ReadString('Conexion Local','Path','');
  ArchivoViejo:= DBEdit4.Text;
  ArchivoNuevo:= '';
  Cargo:= 0;
  Elimino:= 0;
end;

procedure TfrmCurso.FormDestroy(Sender: TObject);
begin
  inherited;
  ini.Free;
end;

Espero que me puedan ayudar.
Saludos :D

Khronos 05-07-2008 15:07:25

Despues de abrir el ini y operar con el liberalo, no lo hagas cuando se destruye el form.

Salu2

totote 05-07-2008 15:22:05

Hola khronos, hice lo que me dijiste pero sigue teniendo el mismo problema, puse la linea ini.Free un botón y no funcionó, también probé en el procedimiento onCreate del Formulario pero tampoco da resultado, como dije sigue teniendo el msimo problema :S

Código Delphi [-]
procedure TfrmCurso.FormCreate(Sender: TObject);
begin
  inherited;
  ini:= TIniFile.Create(GetCurrentDir + '\webadmin.conf');
  TipoConexion:= ini.ReadInteger('Conexion','Tipo',1);
  Host:= ini.ReadString('Conexion FTP','Host','');
  User:= ini.ReadString('Conexion FTP','User','');
  Pass:= ini.ReadString('Conexion FTP','Pass','');
  PathRemota:= ini.ReadString('Conexion FTP','Path','/');
  Path:= ini.ReadString('Conexion Local','Path','');
  ini.Free; // <----------     Nueva Linea
  ArchivoViejo:= DBEdit4.Text;
  ArchivoNuevo:= '';
  Cargo:= 0;
  Elimino:= 0;
end;

Hay alguna forma de resetear el archivo? porque sospecho que al abriro el puntero al del archivo ya queda posicionado en algún lugar, entonces cuando lo vuelvo a abrir q el puntero se posicione en el comienzo.

Saludos :D

coso 05-07-2008 16:35:00

Hola, por lo que veo este codigo esta bien. Debes sobreescribir por algun otro lado las variables host, user, pass,... ya sea en el archivo o en memoria. Saludos

totote 05-07-2008 16:42:13

Eso pensé en un principio, cambié los nombres de las variables en todos las tres unit que lo utilizo pero sigue igual, me esta volviendo chango esto :D

coso 05-07-2008 16:44:16

Puedes usar el debugger para hacer un seguimiento de ellas...Ctrl+F5 watch, F7,F8, trace into, trace over, siempre que project->options->compiler->debugger options esten activadas

totote 05-07-2008 20:57:47

Bueno no encontre cual era el problema porque por mas vuelta que daba parecia estar todo bien, asique opte por otra solución, en vez de estar abriendo y cerrando tantas veces el archivo ini, lo abro al inicio cargo las opciones en una clase y despues lo libero, y si modifico las opciones lo abro nuevamente guardo las opciones y lo libero.... creo que eso es lo que tendría que haber hecho en un principio :P

Saludos :D

marcoszorrilla 05-07-2008 21:08:40

Esto último que comentas es lo que hago yo y no me da problemas nunca.

Un Saludo.


La franja horaria es GMT +2. Ahora son las 05:37:30.

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