Menú Archivo:
Nuevo, Abrir, Guardar, Agregar Alumno, Eliminar Alumno, Cerrar
Donde
Nuevo: crea un nuevo archivo a través de un cuadro de diálogo para almacenar la lista de alumnos.
Abrir: abre un archivo existente para agregar nuevos alumnos o procesar su información.
Guardar: abre un cuadro de diálogo para guardar el archivo con otro nombre o en otro lugar (Guardar como).
Agregar Alumno: actualiza el archivo con los datos de un nuevo alumno.
Eliminar alumno: elimina un alumno del archivo. Al elegir esta opción se deben “apagar” los edit del Formulario a excepción del correspondiente al DNI. Al hacer clik en ACEPTAR se elimina el alumno.
Cerrar: cierra el archivo.
Menú Herramientas:
Buscar Alumno x DNI, Lista c/Promedios, Lista de Regulares, Lista de Libres Donde
Buscar Alumno x DNI: anula (apaga) los EDIT a excepción del DNI y permite al usuario buscar en el archivo a dicho alumno al hacer click en ACEPTAR. Si lo encuentra coloca sus datos en cada Eidt y aparecen su promedio y condición: REGULAR si el promedio supera 60 y LIBRE si no lo supera. Observe las Figuras 3 y 4
Lista c/Promedios: Lista en un componente Memo los apellidos y Nombres de los alumnos del archivo con sus pro medios.
quisiera saber si estoy haciendo bien la unit 2
unit Unit2; interface uses Dialogs, StdCtrls, SysUtils, Grids; type alumno = Record Apellido, nombres: string[20]; DNI, saldo: double; end; TArchivo = class private Archi:File of alumno; datos: alumno; Ver: TStringGrid; public procedure CrearArchivo(ArchiFisico:string); procedure AbrirArchivo(ArchiFisico:string); procedure Agregaralumno(c:alumno;var b:byte); procedure GuardarArchivo(ArchiFisico:string); procedure Eliminaralumno(var h:longint; e10: string); procedure CerrarArchivo; function Buscar_X_DNI(var h:longint; var c:alumno):boolean; procedure MostrarLista(var ver:TStringGrid); end; implementation procedure TArchivo.CrearArchivo; begin AssignFile(Archi,ArchiFisico); Rewrite(Archi); end; procedure TArchivo.AbrirArchivo(ArchiFisico:string); begin AssignFile(Archi,ArchiFisico); Reset(Archi) end; procedure TArchivo.Agregaralumno(c:alumno;var b:byte); begin {$I-} Seek(Archi, FileSize(archi)); {$I+}; b:=IOResult; If b=0 then Write(Archi, c); end; procedure TArchivo.GuardarArchivo(ArchiFisico:string); begin AssignFile(Archi,ArchiFisico); Rewrite(Archi); end; procedure TArchivo.Eliminaralumno(var h:longint; e10: string); var aux: file of alumno; begin assignfile(aux,'temp.dat'); {$I-} reset(archi); rewrite(aux); {$I+} if ioresult<>0 then showmessage('Error en Archivo') else Begin while not eof (archi) do begin read(archi,datos); if datos.dni <> h then write(aux,datos); end; closefile (archi); closefile(aux); erase(Archi); if not RenameFile('temp.dat', e10) then Showmessage('Error renombrando Archivos!'); end; Showmessage ('Se eliminó correctamente el alumno con DNI'+ inttostr(h)); end; procedure TArchivo.CerrarArchivo; begin if IOresult = 0 then begin closefile(Archi); end end; function TArchivo.Buscar_X_DNI(var h:longint;var c: alumno):boolean; begin reset(archi); while not eof (archi) do begin read(archi, c); if c.dni = h then begin Result := True; Exit; end; end; // alumno no encontrado Result := False; end; procedure TArchivo.MostrarLista(var ver:TStringGrid); var fila, columna: integer; begin Reset(Archi); fila:=1; columna:=0; while not EOF do begin ver.Cells[fila,columna] := datos.nombres; inc(columna); ver.Cells[fila,columna] := datos.Apellido; end; end; end.
Lista de Regulares: Lista los alumnos Regulares, Apellidos, Nombres y promedio.