3
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_directo Uses 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

Organización De Archivos

Embed Size (px)

Citation preview

Page 1: Organización De Archivos

• 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

Page 2: Organización De Archivos

• 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;

Page 3: Organización De Archivos

• 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*)