UNIDAD 6: PROGRAMACION PASCAL REGISTROS Y ARCHIVOS DIRECTOS

TEMA 2: CREACION LECTURA Y GRABACION ARCHIVOS DISCO PASCAL

Son completamente similares a lo que se hizo con archivos secuenciales

GRABACION

Prog25.PAS

program prog25;
uses crt;
type
alumnos = RECORD
clave:integer;
nombre:string[30];
edad:integer;
status:char;
end;
var
alumno:alumnos;
archivo: file of alumnos;
BEGIN
clrscr;
(* creando y abriendo el archivo *)
assign(archivo,'c:\prog\alumnos.dat');
reset(archivo);
(* moviendo apuntador al final del archivo existente *)
seek(archivo,filesize(archivo));
(* capturando registro *)
write('dame clave : ');readln(alumno.clave);
write('dame nombre : ');readln(alumno.nombre);
write('dame edad : ');readln(alumno.edad);
(* cargando status *)
alumno.status :='A';
(* grabando el registro al archivo *)
write(archivo, alumno);
(* cerrando archivo y avisando *)
close(archivo);
writeln;writeln;
writeln('NUEVO REGISTRO INSERTADO');
readln;
END.

Recordar que la estructura que se uso para crear el archivo se debera usar siempre y con el mismo orden cuando se acceda al archivo con los procesos u operaciones anteriormente mencionados.

Observar que es completamente similar a la creacion de archivos secuenciales.

Se agergo un campo de status de tipo char que se cargo con el caracter 'A' para significar que este registro esta en altas, pueden usar status numericos para cargarlo con numeros que signifiquen diferentes cosas por ejemplo 1.-alta, 2.-baja, 3.- baja temporal, 4.- permiso, etc.

Recuerden que para que funcione el archivo ya debes estar creado, si no quieren usar el programa de creacion de archivos, pueden crearlo directamente en windows con file new text.

LECTURA

Prog26.pas

program prog26;
uses crt;
type
alumnos = RECORD
clave:integer;
nombre:string[30];
edad:integer;
status:char;
end;
var
alumno:alumnos;
archivo: file of alumnos;
BEGIN
clrscr;
(* creando y abriendo el archivo *)
assign(archivo,'c:\prog\alumnos.dat');
reset(archivo);
(* ciclo de lectura y despliegue registro *)
while not(EOF(archivo)) do
begin
read(archivo,alumno);
(* revisando status registro *)
if alumno.status = 'A' then
begin
write('clave : ');writeln(alumno.clave);
write('nombre : ');writeln(alumno.nombre);
write('edad : ');writeln(alumno.edad);
write('<enter> para continuar ');readln;;
end;
end;
(* cerrando archivo *)
close(archivo);
END.

Corrida:

image256.jpg

Recordar que siempre debes estar revisando o validando el campo se status o bandera para conocer el estado del registro.

Tareas PROGRAMACION PASCAL

Crear archivos directos de alumnos, provedores, libros, productos, peliculas.

Politica de Privacidad