Organización De Archivos

Preview:

Citation preview

• Procedure Leer_Datos• Begin• Writeln ('Ingrese el nombre del

alumno: ');• Readln (Inf.Nombre);• Writeln ('Ingrese la calificación: ');• Readln (Inf.Calf);• Inf.Nc:=Nctrl• End;

• Procedure Limpia_regis;• Begin• Inf.Nc:=0;• Inf.Nombre:='';• Inf.Calf:=0;• End;

Program Archivo_directoUses Crt; Type Alum: Record Nc: integer; Nombre: String; Calf: Real; Var Arch: File of Alum Inf: Alum; Nctrl,i: Integer; Ch: Char;

Procedure Leer_Nc; Begin Writeln ('Ingrese el numero de control: '); Readln (Nctrl); End;

Ejemplo de Un Archivo-Directo en Pascal

• Procedure Imprimir;• Begin• Writeln ('El número de control es: ',Inf.Nc);• Writeln ('El nombre es: ', Inf.Nombre);• Writeln ('La calificación es: ',Inf.Calf);• End;

• Procedure revisa;• Begin• {$I-}• Reset (Arch);• {$I+}• If (IORESULT<>0) then• Begin• Rewrite (Arch);• Limpia_regis;• For i:=0 to 100 do• Write (Arch,Est);• End;• End;

Procedure espera (Var CH:Char); Begin Repeat CH:= Upcase(Readkey); until CH in ['S' or 'N']; End;

• Procedure Altas;• Var CH: Char;• Begin• Repeat• Clrscr;• Leer_NC;• Seek (Arch,Nctrl);• Read (Arch,Inf);• If (Inf.Nc<>0) then (*if (Inf.Nc=0) then *)• Writeln ('Ese dato ya existe...'); (*Ese dato no existe*)• Else• Begin• Leer_Datos; (*Imprimir*)• Writeln ('Desea dar de alta estos datos? (S/N): '); (*Desea borrar el registro*)• If (Espera='S') then• Begin• Seek (Arch,Nctrl); (*Limpia_regis*)• Write (Arch,Inf);• End;• End;• Writeln ('Desea continuar en altas (S/N): '); (*Desea seguir en bajas*)• Until (Espera='N')• End;

(*Cambios para realizar una baja de registro*)

Recommended