Skip to content

Instantly share code, notes, and snippets.

@matipan
Created May 16, 2016 14:25
Show Gist options
  • Save matipan/c1bdf78bb2a6b624bc84dc6d0878afc4 to your computer and use it in GitHub Desktop.
Save matipan/c1bdf78bb2a6b624bc84dc6d0878afc4 to your computer and use it in GitHub Desktop.
Ejercicio 1, bajas.
Program ejer1;
const
valoralto='0000';
type
codstr = string[10];
tragoR = record
codigo: codstr;
nombre: string[20];
descripcion: string[50];
alcohol: real;
end;
maestro = file of tragoR;
procedure escribirMae(var mae: maestro);
var
trago: tragoR;
begin
writeln('TRAGO: ');
write('Introduzca codigo: ');
readln(trago.codigo);
while (trago.codigo <> valoralto) do
begin
write('Introduzca nombre: ');
readln(trago.nombre);
write('Introduzca descripcion: ');
readln(trago.descripcion);
write('Introduzca alcohol: ');
readln(trago.alcohol);
write(mae, trago);
writeln('TRAGO: ');
write('Introduzca codigo: ');
readln(trago.codigo);
end;
end;
procedure imprimirMae(var mae: maestro);
var
trago: tragoR;
begin
reset(mae);
read(mae, trago);
while (not eof(mae)) do
begin
writeln('TRAGO: ');
write('Codigo: ');
writeln(trago.codigo);
write('Nombre: ');
writeln(trago.nombre);
write('Descripcion: ');
writeln(trago.descripcion);
write('Alcohol: ');
writeln(trago.alcohol);
read(mae, trago);
end;
writeln('TRAGO: ');
write('Codigo: ');
writeln(trago.codigo);
write('Nombre: ');
writeln(trago.nombre);
write('Descripcion: ');
writeln(trago.descripcion);
write('Alcohol: ');
writeln(trago.alcohol);
reset(mae);
end;
procedure actualizar(var mae: maestro; codigo: codstr);
var
trago: tragoR;
iBorrar: Word;
begin
repeat read(mae, trago) until (trago.codigo = codigo) or eof(mae);
if(codigo = trago.codigo) then
begin
iBorrar := filepos(mae)-1;
seek(mae, filesize(mae)-1); read(mae, trago);
seek(mae, iBorrar); write(mae, trago);
seek(mae, filesize(mae)-1); truncate(mae);
writeln('Trago eliminado.');
end
else
writeln('Trago no encontrado');
reset(mae);
end;
var
mae: maestro;
codigo: string[10];
begin
assign(mae, 'maestro1.txt');
reset(mae);
imprimirMae(mae);
write('Introduzca el codigo, finaliza con 0000: ');
readln(codigo);
while (codigo <> valoralto) do
begin
actualizar(mae, codigo);
imprimirMae(mae);
write('Introduzca el codigo, finaliza con 0000: ');
readln(codigo);
end;
close(mae);
end.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment