PDA

Ver la Versión Completa : Cómo cargar archivo .txt en memo


onomatopeya
25-11-2007, 10:15:30
Hola buenas, resulta que estoy intentando a ver si se me abre el contenido de un archivo.txt en una Memo. El método que estoy utilizando es el siguiente, me he declarado una variable privada en el formulario donde guardar el nombre del archivo en curso->fichProg de tipo AnsiString, la inicializo a vacío en el evento OnCreate del formulario principal (esto para guardar) y para cargar utilizo

Memo->Lines->LoadFromFile(fichProg);

Pero el problema es que al intentar abrir el archivo, me sale la excepción EFOpenError, y no sé cómo puedo solucionarlo. A ver si alguien puede ayudarme, gracias de antemano.

dec
25-11-2007, 10:22:56
Hola,

Puede ser por varios motivos. Esta es la descripción que da la ayuda de Delphi de la excepción "EOpenError":


EFOpenError is raised when an application cannot open a specified file. This can occur, for example, because the file doesn't exist or is not in the directory where the application is searching for it.


¿Existe el archivo donde se supone que lo estás buscando? Es lo primero que puede decirse: que debes asegurarte de que el archivo en cuestión existe y/o reaccionar a la excepción que se produciría de no ser así...

Lepe
25-11-2007, 13:07:30
... Y por supuesto en FichProg debe estar la ruta absoluta c:\directorio\nombre.txt

Saludos

dec
25-11-2007, 13:23:28
Hola,


... Y por supuesto en FichProg debe estar la ruta absoluta c:\directorio\nombre.txt


Pero, eso no es así en todo caso, ¿no? O sea, tú puedes abrir un archivo sin especificar su ruta, por ejemplo, si está en el mismo directorio del ejecutable, no estoy seguro de que en realidad puede estar o ha de estar en el "directorio activo".

Pero, lo primordial, tal vez sea comprobar la existencia de un archivo. Así, esto puede funcionar:


if FileExists('archivo.txt') then
ACargar('archivo.txt');


Aunque, una cosa no quita la otra, seguramente es mejor usar rutas absolutas y no confiar en dónde pueda estar nuestro ejecutable o cuál sea el directorio activo, en este caso. ;)