• Viernes 8 de Noviembre de 2024, 11:47

Autor Tema:  Tratamiento De Ficheros: Errores De Compilacion  (Leído 2926 veces)

forenaits

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Tratamiento De Ficheros: Errores De Compilacion
« en: Jueves 6 de Septiembre de 2007, 14:05 »
0
Estoy haciendo una práctica y no consigo compilar por culpa de los errores. El último es del tipo
Citar
practica_uno-copia_imagen.adb:48:09: actual for "File" must be a variable
Se trata de un subprograma separate (copia_imagen.adb) del programa principal (practica_uno.adb), os muestro como lo tengo declarado:

Código: Text
  1. PROCEDURE copia_imagen(Ent: in file_type; Sal: out file_type) IS SEPARATE;
  2.  
  3.  

Llamada al subprograma:
Código: Text
  1.    copia_imagen(F,S);
  2.  
  3.  

Dentro del subprograma:
Código: Text
  1. separate (practica_uno)
  2. procedure copia_imagen (Ent: in file_type; Sal: out file_type) is
  3. BEGIN
  4.    Open(Ent,In_File,"recullfotos_temp.txt");
  5.  
  6. ...
  7.  
  8.    Close(Ent);
  9. END copia_imagen;
  10.  


¿Se os ocurre a que se debe el error y como puedo solucionarlo? Gracias de antemano.

Gneuromante

  • Miembro activo
  • **
  • Mensajes: 31
    • Ver Perfil
    • http://www.canalada.org/
Re: Tratamiento De Ficheros: Errores De Compilacion
« Respuesta #1 en: Jueves 6 de Septiembre de 2007, 21:35 »
0
Citar
actual for "File" must be a variable

Este error quiere decir que está pasando una constante o un parámetro in (que ambos son vistas constantes de un objeto) donde se necesita una variable porque se hace una asignación. En este caso es porque el parámetro de tipo file_type en Open es de modo in out y por tanto Ent debe ser de modo in out.

Recuerda que para manejar el fichero las llamadas necesitan poder escribir en el manejador del fichero, es decir en los objetos de tipo file_type. Sin embargo, parece que te has liado con el concepto de fichero de entrada y fichero de salida. Puesto que ambos los tendrás que abrir, los tendrías que pasar como in out. O mejor pasar los nombres de los archivos como parámetros in y las variables file_type las declaras dentro de copia_imagen.
Gneuromante.
Nos vemos en http].

forenaits

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Tratamiento De Ficheros: Errores De Compilacion
« Respuesta #2 en: Viernes 7 de Septiembre de 2007, 11:43 »
0
Muchas gracias, ya esta solucionado.

Citar
O mejor pasar los nombres de los archivos como parámetros in y las variables file_type las declaras dentro de copia_imagen.
¿Me podrías poner un ejemplo?

**No me funciona la mensajeria privada ni el correo  :blink: