16/12/2015, 05:37
|
| | Fecha de Ingreso: diciembre-2015 Ubicación: Formosa
Mensajes: 6
Antigüedad: 8 años, 11 meses Puntos: 0 | |
Respuesta: Ejercicio de Archivos PASCAL {A ver si esto ayuda}
program archivos;
uses
crt;
type
regdatos = record
nombre : string[80];
cedula : longint;
notas : array[1..3] of real;
end;
var
f : file of regdatos;
dato : array[1..10] of regdatos;
tex : text;
medias : array[1..10] of real;
nom : array[1..10] of string[80];
procedure entradatos;
var
h, cont : integer;
tec : char;
begin
cont := 1;
repeat
clrscr;
write(' Entre Nombre : ');
readln(dato[cont].nombre);
write(' Entre Cedula : ');
readln(dato[cont].cedula);
write(' Entre notas 1 : ');
readln(dato[cont].notas[1]);
write(' Entre notas 2 : ');
readln(dato[cont].notas[2]);
writeln;
writeln(' Dese entrar mas datos [S/N] ');
repeat
tec := upcase(readkey);
until tec in ['S','N'];
if tec = 'N' then
tec := #27
else
cont := cont + 1;
until (cont > 10) or (tec = #27);
assign(f,'Temporal.dat');
{$I-} reset(f); {$I+}
if ioresult <> 0 then
begin
rewrite(f);
h := 0;
repeat
seek(f,h);
write(f,dato[h + 1]);
h := h + 1;
until h > cont;
close(f);
end
else
begin
writeln(' El archivo existe desea Anularlo por este [S/N] ');
repeat
tec := upcase(readkey);
until tec in['S','N'];
if tec in['N'] then
begin
end
else
begin
rewrite(f);
h := 0;
repeat
seek(f,h);
write(f,dato[h + 1]);
h := h + 1;
until h > cont;
close(f);
end;
end;
end;
procedure pasaloatexto;
var
i, g : longint;
begin
assign(f,'Temporal.dat');
{$I-} reset(f); {$I+}
if ioresult <> 0 then
begin
writeln(' El Archivo No Existe Pulse [Enter] ');
readln;
exit;
end
else
begin
assign(tex,'temporal.txt');
rewrite(tex);
for i := 0 to filesize(f) - 2 do
begin
seek(f,i);
read(f,dato[i + 1]);
writeln(tex,dato[i + 1].nombre);
writeln(tex,dato[i + 1].cedula);
writeln(tex,dato[i + 1].notas[1]:3:2);
writeln(tex,dato[i + 1].notas[2]:3:2);
end;
close(f);
close(tex);
writeln('Archivo De Binario A Texto');
end;
end;
procedure sacamedia;
var
p, i : integer;
nomb : string[80];
cod : longint;
n1, n2 : real;
begin
assign(tex,'temporal.txt');
{$I-} reset(tex); {$I+}
if ioresult <> 0 then
begin
writeln(' Error El Archivo No Existe Pulse [Enter]');
readln;
exit;
end
else
begin
p := 1;
while not eof(tex) do
begin
read(tex,nomb);
read(tex,cod);
read(tex,n1);
read(tex,n2);
readln(tex);
nom[p] := nomb;
medias[p] := (n1 + n2) / 2;
writeln(nom[p],' La Media Es = ',medias[p]:3:2);
p := p + 1;
if p > 10 then
p := 10;
end;
close(tex);
end;
end;
procedure menu;
var
te : char;
begin
repeat
clrscr;
writeln('****** Menu General ******');
writeln;
writeln(' 1 = Entrada De Datos');
writeln(' 2 = Archivo Binario A Texto');
writeln(' 3 = Presenta Las Medias');
writeln(' 4 = Salir');
writeln;
writeln('<<<<< Elija Opcion >>>>>');
repeat
te := readkey;
until te in[#49,#50,#51,#52];
case te of
#49 : begin clrscr; entradatos; end;
#50 : begin clrscr; pasaloatexto; writeln(' Pulse [Enter]'); readln; end;
#51 : begin clrscr; sacamedia; readln; end;
end;
until te = #52;
end;
begin
menu;
end.
Esta mal ya que me base en un ejercicio similar. Pero no tengo idea de como hacer para hacer un buscador por DNI ni tampoco como guardar los datos en el archivo. Justamente por eso estoy pidiendo ayuda desde 0 ya que esos 2 conceptos son los basicos |