[ Foro de Pascal ]

Error 103 - No puedo leer archivo de texto - Ayuda por favor

12-Mar-2016 03:13
Jonathan Lopez
1 Respuestas

Buenas, y desde ya muchas gracias por vuestra ayuda.
El problema es el siguiente: debo generar un archivo binario, que es de tipo registro, leyendo un archivo de texto. Esto fue lo que hice:


program ejercicio2;
uses crt;
const
  valoralto = 9999;
type
  alumnos = record
    codigo:integer;
    apellido:string;
    nombre:string;
    mat_apro:integer;
    mat_desa:integer;
  end;
  detalles = record
    codigo:integer;
    materia:integer;
    estado:string;
  end;
  maestro = file of alumnos;
  detalle = file of detalles;
var
  file_alum: maestro;
  file_det: detalle;
  reg_alum: alumnos;
  reg_det: detalles;
  opc: integer;

//OPCION 1: GENERACION DE ARCHIVO BINARIO
procedure binario_maestro();
var
  texto:text;
  a_cod,a_apro,a_desap:integer;
  a_ape,a_nom:string;
begin
  assign(texto,'alumno.txt');
  assign(file_alum,'alumnos');
  rewrite(file_alum);
  reset(texto);

  while (not eof(texto)) do
    begin
      //leer archivo de texto
      readln(texto,a_cod,a_ape,a_nom,a_apro,a_desap);
      //grabar en registro
      reg_alum.codigo := a_cod;
      reg_alum.apellido := a_ape;
      reg_alum.nombre := a_nom;
      reg_alum.mat_apro := a_apro;
      reg_alum.mat_desa := a_desap;
      //grabar en binario
      write(file_alum,reg_alum);
    end;
  close(texto);
  close(file_alum);
end;

//OPCION 2: GENERACION DE ARCHIVO BINARIO
procedure binario_detalle();
var
  texto:text;
  a_cod,a_mat:integer;
  a_est:string;
begin
  assign(texto,'detalle.txt');
  assign(file_det,'detalles');
  rewrite(file_det);
  reset(texto);
  while (not eof(texto)) do
    begin
      readln(texto,a_cod,a_mat,a_est);
      reg_det.codigo:=a_cod;
      reg_det.materia:=a_mat;
      reg_det.estado:=a_est;
      write(file_det,reg_det);
    end;
  close(texto);
end;


el problema esta en la opcion 1, dado que la opcion 2 si funciona perfectamente, y es casi identico, solo cambio la cantidad de datos que estoy leyendo del archivo de texto, no se si sera eso, o por los string, no logro entenderlo, son identicos uno funciona y el otro no, me da error 103, y lo busque y es "file not open".

me gustaria que si pueden por favor decirme exactamente como debo armar el archivo de texto para leerlo sin problemas, se que debo dejar un espacio en blanco entre cada palabra, y con el enter genrar el fin de linea.

desde ya muchas gracias.


13-Mar-2016 00:56
Nacho Cabanes (+84)

¿Seguro que el fichero existe?  Tu programa no lo está comprobando. Mira el apartado 7.1.4 del curso de Pascal:

http://www.aprendeaprogramar.com/mod/resource/view.php?id=566
 






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)