Pascal/Turbo Pascal - Problema al hacer reset de un archivo

 
Vista:

Problema al hacer reset de un archivo

Publicado por Santiago (6 intervenciones) el 13/06/2015 22:46:09
Hola, hice 3 programas parecidos cambiando las funciones solamente, y el tercero empezo a tirarme error con el reset de uno de los archivos...

Les dejo el codigo sin las funciones así no se hace largo y les remarco la parte del error:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
var ArchiA:file of integer;
      ArchiB:file of integer;
      e:integer;
      Capi,DigPar,DigitosImp:boolean;
 
Begin
 
  Assign(ArchiA,'ArchivoDeEnteros');
  Assign(ArchiB,'ArchivoDeEnterosSeleccionadosC');
  reset(ArchiA); // ACÁ ESTA EL ERROR
  rewrite(ArchiB);
  while not eof(ArchiA) do
   Begin
     read(ArchiA,e);
     Capi:=es_capicua(e);
     DigitosImp:=digitosimpares(e);
     DigPar:=DigitoPar(e);
     if (digitosimp=false) and (Capi=false) and (DigPar=true)
     then write(ArchiB,e);
   end;
  close(ArchiA);
  close(ArchiB);
  reset(ArchiA);
  reset(ArchiB);
   Writeln('Elementos en ArchivoA: ');
    while not eof(ArchiA) do
     begin
      read(ArchiA,e);
      write(' ',e,' ');
     end;
   Writeln('Elementos en ArchivoB: ');
    while not eof(ArchiB) do
     begin
      read(ArchiB,e);
      write(' ',e,' ');
     end;
  close(ArchiA);
  close(ArchiB);readln;
 
end.

Espero que alguien sepa detectar el error, los anteriores funcionaron a la perfeccion y no cambie esa parte del código en ningún momento, solo agregue y quite funciones y agregue que además de escribir el contenido del archivo B escriba los 2, fuera de eso nada.

Saludos!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema al hacer reset de un archivo

Publicado por ramon (2158 intervenciones) el 13/06/2015 23:24:02
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
{Mira esto}
 
var ArchiA:file of integer;
      ArchiB:file of integer;
      e:integer;
      Capi,DigPar,DigitosImp:boolean;
 
Begin
   Assign(ArchiA,'ArchivoDeEnteros');
 {$I-} reset(ArchiA);  {$I+}
  if ioresult <> 0 then
   rewrite(ArchiA);
  Assign(ArchiB,'ArchivoDeEnterosSeleccionadosC');
  {$I-} reset(ArchiB);  {$I+}
  if ioresult <> 0 then
   rewrite(ArchiB);
 
  while not eof(ArchiA) do
   Begin
     read(ArchiA,e);
     Capi:=es_capicua(e);
     DigitosImp:=digitosimpares(e);
     DigPar:=DigitoPar(e);
     if (digitosimp=false) and (Capi=false) and (DigPar=true)
     then write(ArchiB,e);
   end;
  close(ArchiA);
  close(ArchiB);
  reset(ArchiA);
  reset(ArchiB);
   Writeln('Elementos en ArchivoA: ');
    while not eof(ArchiA) do
     begin
      read(ArchiA,e);
      write(' ',e,' ');
     end;
   Writeln('Elementos en ArchivoB: ');
    while not eof(ArchiB) do
     begin
      read(ArchiB,e);
      write(' ',e,' ');
     end;
  close(ArchiA);
  close(ArchiB);readln;
 
end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema al hacer reset de un archivo

Publicado por Santiago (6 intervenciones) el 14/06/2015 00:02:21
No se bien que es eso de {$I-} y {$I+} pero el unico rewrite que tenia que hacer era en el archivo B ya que el A ya esta creado y es una lista de 1 a 1000 para filtrar y poner en el archivo B
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

resuelto

Publicado por Santiago (6 intervenciones) el 14/06/2015 00:14:00
Lo resolvi, al parecer el archivo se habia dañado, solo cree otro y todo funcionó de nuevo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

resuelto

Publicado por ramon (2158 intervenciones) el 14/06/2015 13:59:58
Me alegro que todo se arreglara.
Te informo para tu conocimiento los {$I-} y {$I+} son para detectar errores en entradas y salidas en tu caso
era si el archivo existe no realiza nada sino lo crea.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar