Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problema con Rewrite (https://www.clubdelphi.com/foros/showthread.php?t=40597)

mr_mustard 21-02-2007 20:31:07

Problema con Rewrite
 
Estoy trabajando con Delphi 7 y experimenté el sigte. caso:
PROBLEMA: no podía ejecutar el siguiente código:
AssignFile(F,'ip_servidor.txt');
Rewrite(F);
writeln(F, s);
closefile(F);

daba un error Project xxxx.exe raised exception class EInOutError with message 'I/O error 32'. Process stopped.

SOLUCION:
AssignFile(F,'ip_servidor.txt');

Rewrite(F);
writeln(F, s);
closefile(F);
No sé que tiene que ver la linea en blanco, pero solucionó el estupido problema que me ha quitado varios minutos de valioso desarrollo.

nlsgarcia 23-02-2007 04:27:24

Respuesta a Problema con Rewrite
 
:) Hola:

Yo tuve un problema relacionado con archivos UDT y creo que la causa son fallas en el compilador, revisa el tema Una Pregunta Teórica sobre Archivos UDT en: http://www.clubdelphi.com/foros/showthread.php?t=40605 y me comentas si el error es de concepto o de compilador.


Gracias :)

Lepe 23-02-2007 14:16:59

Las líneas en blanco las elimina el compilador antes de hacer el ejecutable, así que... no van por ahí los tiros.

Lo que veo en un principio, es que pasas la ruta relativa, por tanto, el archivo se creará en el directorio de windows o a saber donde.

No usas ninguna estructura try except para cerrar el archivo en caso de problemas y precisamente ese es el 'I/O ERROR 32' el archivo ya se encuentra abierto (habrás pulsado dos veces en el botón de abrir el archivo).

Por otra parte, no compruebas si el directorio donde se va a crear existe o no (el usuario puede borrar cualquier carpeta), haz un ForceDirectories si es necesario.

Saludos

Lepe 23-02-2007 14:37:11

Un detalle para ambos:

Si el archivo o la ruta puede tener espacios en su nombre, o ser mayor a 8 caracteres, usad dobles comillas para encerrarlo todo, la ruta y nombre de archivo:
Código Delphi [-]
var ruta:string;
begin
ruta := '"c:\Archivos de programa\mi programa\ip_servidor.txt"';
// observen, primero una comilla simple, para iniciar un string y dentro las dobles 
// comillas tipográficas. Al terminar la ruta, al contrario.

AssignFile(F,ruta);

Saludos


La franja horaria es GMT +2. Ahora son las 23:58:13.

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