Tema: Auxilio
Ver Mensaje Individual
  #7  
Antiguo 08-08-2010
Avatar de Lord Delfos
Lord Delfos Lord Delfos is offline
Miembro
 
Registrado: ene 2008
Ubicación: Tandil, Argentina
Posts: 558
Reputación: 17
Lord Delfos Va por buen camino
Cita:
Empezado por maugescully Ver Mensaje
Me saltan los siguientes errores:
[Error] Unit2.pas(52): Incompatible types: 'Alumno' and 'ShortString'
[Error] Unit2.pas(53): Incompatible types: 'Alumno' and 'ShortString'
Bueno, un poco tarde, pero...

Lo que está pasando es que declaraste el archivo como "file of Alumno". Eso es un archivo binario que solamente acepta que vos escribas variables de tipo Alumno.

Para escribir Alumno.Nombre deberías tener un archivo de tipo "TextFile".

Por ejemplo:

Código Delphi [-]
var Archi: file of Alumno;
...
Write(Archi, Alumno); //Bien
Write(Archi, Alumno.Nombre); //Mal, nombre es un string[20], no un Alumno.

var Archi: TextFile;
...
Wirte(Archi, Alumno); //Mal. Es un archivo de texto y Alumno no es texto.
Write(Archi, Alumno.Nombre); //Bien
Write(Archi, Alumno.DNI); //Mal. DNI es un Integer, y tu archivo es de strings.

Cita:
Empezado por maugescully Ver Mensaje
[Error] Unit2.pas(53): Illegal type in Write/Writeln statement
[Error] Unit2.pas(54): Illegal type in Write/Writeln statement
El Writeln sólo funciona con TextFile, con un archivo binario (como "file of Alumno") no tiene ningún sentido escribir "una linea" (que es la diferencia entre un Write y un Writeln).

En el link que te paso Caral explican muy bien cómo es el tema con los archivos de texto. Otro link por si las dudas.

Saludos.
Responder Con Cita