Pascal/Turbo Pascal - Ejercicio de manejo de archivos

 
Vista:
sin imagen de perfil
Val: 6
Ha aumentado su posición en 46 puestos en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

Ejercicio de manejo de archivos

Publicado por Andres (15 intervenciones) el 13/07/2021 21:01:50
Elaborar un programa que genere un archivo de registro, cada uno de los cuales contiene
los campos cédula, nombre, dirección, edad, fecha de nacimiento (dd/mm/aaaa), sexo
(M/F) y ciudad, para ello
 Pedir los datos por pantalla y almacenarlos en el archivo.
 Generar un reporte (archivo de salida) que contenga el nombre y dirección de las
personas cuyos nombres comiencen con alguna letra dada por teclado y que vivan
un sector también dado por teclado ( el sector de residencia se almacena en el
campo dirección). El reporte debe tener una cabecera que usted libremente debe
diseñar. En la cabecera del reporte debe incluir la fecha y hora de la generación
del reporte.
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

Ejercicio de manejo de archivos

Publicado por ramon (2158 intervenciones) el 03/08/2021 14:44:10
Espero esto te sirva en tu tarea-

program arcivos;
uses
crt,dos;

type
campos = record
cedula : longint;
nombre : string;
direccion : string;
edad : integer;
fecha_naci : string[10];
sexo : char;
ciudad : string;
end;

const
archivo : string = 'Registro.dat';


var
f : file of campos;
dato : campos;
tecl : char;


procedure guardamos(d : campos);
begin
assign(f,archivo);
{$I-} reset(f); {$I+}
if ioresult <> 0 then
begin
rewrite(f);
seek(f,0);
write(f,dato);
close(f);
end
else
begin
seek(f,filesize(f));
write(f,dato);
close(f);
end;
end;

procedure entradadatos;
begin
clrscr;
writeln('***** Entrada Datos *****');
writeln;
write('Entre N. Cedula : ');
readln(dato.cedula);
write('Entre Nombre : ');
readln(dato.nombre);
write('Entre Direccion : ');
readln(dato.direccion);
write('Entre Edad : ');
readln(dato.edad);
write('Entre Fecha Nacimiento : ');
readln(dato.fecha_naci);
write('Entre Sexo : ');
readln(dato.sexo);
write('Entre Ciudad : ');
readln(dato.ciudad);
writeln;
writeln('Datos Correctos [S\N]');
repeat
tecl := upcase(readkey);
until tecl in['S','N'];
if tecl = 'S' then
guardamos(dato)
else
writeln('No Se Guardaron Los Datos ');
end;

function fecha : string;
const
dias : array [0..6] of String[9] =
('domingo','lunes','martes',
'mi‚rcoles','jueves','viernes',
'S bado');
var
y, m, d, dow : Word;
dia, mes, ayo : string[4];
begin
GetDate(y,m,d,dow);
str(m,dia);
str(d,mes);
str(y,ayo);
fecha := mes + '/' + dia + '/' + ayo;

end;

function ponceros(w : word) : string;
var
s : string;
begin
Str(w:0,s);
if length(s) = 1 then
s := '0' + s;
ponceros := s;
end;

function hora : string;
var
h, m, s, hund : word;
begin
gettime(h,m,s,hund);
hora := ponceros(h) + ':' + ponceros(m);
end;

procedure reporte;
var
di, letra : char;
cont : longint;
rep : campos;
begin
clrscr;
writeln('<<<<<< Presentacion Reporte >>>>>>');
write('Entre La Letra Del Nombre : ');
readln(letra);
write('Entre La Letra De La Direccion : ');
readln(di);
di := upcase(di);
letra := upcase(letra);
clrscr;
assign(f,archivo);
{$I-} reset(f); {$I+}
if ioresult <> 0 then
begin
writeln('Error De Archivo O No Existe Pulse Una Tecla');
readkey;
end
else
begin
writeln('Reporte Realizado Fecha Y Hora = ',fecha,' ',hora);
for cont := 0 to filesize(f) - 1 do
begin
seek(f,cont);
read(f,rep);
if (upcase(rep.nombre[1]) = letra) and
(upcase(rep.direccion[1]) = di) then
writeln(rep.nombre,' ',rep.direccion);
end;
close(f);
writeln('Pulse Una Tecla');
readkey;
end;
end;

procedure menu;
var
tec : char;
sal : boolean;
begin
sal := false;
repeat
clrscr;
writeln('||||||| Menu |||||||');
writeln;
writeln('[E] = Entrada Datos');
writeln('[R] = Reporte');
writeln('[S] = Salir');
writeln;
writeln('##### Elija Opcion #####');
repeat
tec := upcase(readkey);
until tec in['E','R','S'];
case tec of
'E' : entradadatos;
'R' : reporte;
'S' : sal := true;
end;
until sal = true;
end;


begin
menu;
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