Pascal/Turbo Pascal - Error de tipo RunTime en archivos

 
Vista:

Error de tipo RunTime en archivos

Publicado por isaias (8 intervenciones) el 08/10/2013 16:08:13
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
{ El error me salta en la accion cartas , quisiera saber como se puede arreglar esto porque estuve intenando ver el problema pero no lo encuentro }
Program Mensaje;
Uses
	Crt;
Type
	TCarta= Text;
	TLista= Record
						Nombre: String[40];
						Direccion: String[60]
					End;
	TLista2= file of TLista;
Var
	dato: TLista;
	lista: file of TLista;
	carta: TCarta;
 
	Procedure Activar (var a: TCarta);
	Var
		resultado: Integer;
	Begin
		Reset(a);
		ClrScr;
		{$I-}
		Reset(a);
		resultado:=IOresult;
		{$I+}
		If resultado <> 0
		Then
			Rewrite(a);
		Close(a);;
	End;
 
	Procedure Cargar (var a: TCarta);
	Var
		frase: String;
		opcion: Char;
	Begin
		Rewrite(a);
		Repeat
			Writeln('Ingrese el texto');
			Readln(frase);
			Writeln(a,frase);
			Writeln('Desea agregar otra linea? s/n');
			Readln(opcion);
		Until upCase (opcion)= 'N';
		Close(a);
	End;
 
 
	Procedure Datos (Var a: TLista);
	Var
		opcion: Char;
	Begin
  	With a Do
     Begin
     	Repeat
     		ClrScr;
 				Writeln('Datos del Usuario');
 				Writeln(' ');
      	Write('Ingrese el Nombre :');
    	  Readln (Nombre);
     	 	Write ('Ingrese la Direccion :');
     		Readln (Direccion);
     		Writeln('¿Desea ingresar otro Usuario?');
      	Readln(opcion);
      Until upCase (opcion)='N'
    End
  End;
 
	Procedure Cartas ( Var a: TCarta; Var b: TLista2);
	Var
		aux: String;
		aux2: TLista
	Begin
		Reset(b);
		While Not EoF(b) Do Begin
			Read(b,aux2);
			Writeln('Estimado/a ',aux2.Nombre);
			Writeln(' ');
			Writeln(aux2.Direccion);
			Writeln(' ');
			Reset(a);
			While Not EoF(a) Do Begin
				Readln(a,aux);
				Writeln(aux)
			End;
			Close(a);
		End;
		Close(b)
	End;
 
 
Begin
	Assign (carta,'carta');
	Activar(carta);
	Cargar(carta);
	Datos(dato);
	Cartas(carta,lista,dato);
End.
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

Error de tipo RunTime en archivos

Publicado por ramon (2158 intervenciones) el 09/10/2013 21:08:38
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
{Mira lo tienes funcionando pero no es correcto lo que as echo puesto que mezclas archivos diferentes explicarme en realidad que quieres hacer y podre ayudar mejor}
 
 Program Mensaje;
Uses
Crt;
Type
   TCarta = Text;
   TLista = Record
       Nombre: String[40];
       Direccion: String[60]
       End;
 
Var
   dato : TLista;
  lista : file of TLista;
  carta : TCarta;
  TLista2 : tlista;
 
Procedure Activar (var a: TCarta);
Var
resultado: Integer;
Begin
{$I-}
Reset(a);
resultado:=IOresult;
{$I+}
If resultado <> 0
Then
Rewrite(a);
Close(a);
End;
 
Procedure Cargar (var a: TCarta);
Var
frase: String;
opcion: Char;
Begin
Rewrite(a);
Repeat
Writeln('Ingrese el texto');
Readln(frase);
Writeln(a,frase);
Writeln('Desea agregar otra linea? s/n');
Readln(opcion);
Until upCase (opcion)= 'N';
Close(a);
End;
 
 
Procedure Datos (Var a: TLista);
Var
opcion: Char;
Begin
With a Do
Begin
Repeat
ClrScr;
Writeln('Datos del Usuario');
Writeln(' ');
Write('Ingrese el Nombre :');
Readln (Nombre);
Write ('Ingrese la Direccion :');
Readln (Direccion);
Writeln('¿Desea ingresar otro Usuario?');
Readln(opcion);
Until upCase (opcion)='N'
End
End;
 
Procedure Cartas ( Var a: TCarta; Var b: TLista);
Var
aux: String;
aux2: TLista;
Begin
Reset(a);
While Not EoF(a) Do Begin
Read(a,aux);
Writeln('Estimado/a ',aux2.Nombre);
Writeln(' ');
Writeln(aux2.Direccion);
Writeln(' ');
Reset(a);
While Not EoF(a) Do Begin
Readln(a,aux);
Writeln(aux)
End;
Close(a);
End;
Close(a)
End;
 
 
Begin
Assign (carta,'carta');
Activar(carta);
Cargar(carta);
Datos(dato);
Cartas(carta,tlista2);
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