Error en archivos
Publicado por hito (3 intervenciones) el 25/09/2020 23:17:10
Me dieron una consigna para un tp que dice "Realizar la carga de los síntomas considerando que no serán más de 20. Si ya existen síntomas cargados, exhibirlos y al momento de ingresar un nuevo síntoma verificar que no se repita."
al momento de hacer la búsqueda secuencial para ver si el síntoma ya existe, el programa se cierra.
No sé si está mal hecha la búsqueda secuencial o si olvide algo en esa función, porque cuando saco la función busec, todo anda perfecto :"/
al momento de hacer la búsqueda secuencial para ver si el síntoma ya existe, el programa se cierra.
No sé si está mal hecha la búsqueda secuencial o si olvide algo en esa función, porque cuando saco la función busec, todo anda perfecto :"/
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
program carga_de_sintomas;
uses crt;
type
sint=record
cod_sint:string[3];
desc_sint:string[30];
arsint:file of sint;
var
arsintomas:arsint;
sintoma:sint;
function archivo:boolean;
begin
if filesize(arsintomas)<>0 then
archivo:=true;
end;
procedure abrirarchivosintomas;
begin
{$l-};
reset(arsintomas);
if IORESULT=2 then
begin
rewrite(arsintomas);
{$l+};
end
else
begin
archivo;
if archivo then
while not EOF(arsintomas) do
begin
read(arsintomas,sintoma);
writeln(sintoma.desc_sint);
end;
writeln('Presione cualquier tecla para continuar');
readkey;
end;
end;
function busec(cod_sint:string[3]):boolean;
var
bandera:boolean;
begin
seek(arsintomas,0);
bandera:=false;
repeat
read(arsintomas,sintoma);
until (cod_sint=sintoma.cod_sint) or (EOF(arsintomas);
if (cod_sint=sintoma.cod_sint) then
begin
bandera:=true;
end;
busec:=bandera;
end;
procedure carga_sintomas;
var
cod_sint:string[3];
begin
writeln('Carga de sintomas. Escriba "*" para volver al menu');
writeln('Ingrese el codigo del sintoma: ');
readln(cod_sint);
while (cod_sint<>'*') and (filesize(arsintomas)<21) do
begin
if busec(cod_sint) then
writeln('El codigo ya existe. Ingrese un codigo valido')
else
begin
sintoma.cod_sint:=cod_sint;
writeln('Ingrese la descripcion del sintoma');
readln(sintoma.desc_sint);
write(arsintomas,sintoma);
clrscr;
writeln('Ingrese el codigo del sintoma: ');
readln(cod_sint);
end;
end;
end;
begin
abrirarchivosintomas;
if filesize(arsintomas)<21 then
carga_sintomas;
end.
Valora esta pregunta


0