De todos modos ahí va el ejemplo. He comenzado un proyecto nuevo y he preparado un ficha como la de la figura:

unit clasico;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
type
Tform1 = class(TForm)
titulo: TLabel;
Label1: TLabel;
num: TEdit;
Label2: TLabel;
nomb: TEdit;
jkhk: TLabel;
sex: TRadioGroup;
Label3: TLabel;
domi: TEdit;
Label4: TLabel;
loca: TEdit;
Grabar: TButton;
Cerrar: TButton;
comenzar: TButton;
Panel1: TPanel;
anterior: TButton;
siguiente: TButton;
procedure CerrarClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure GrabarClick(Sender: TObject);
procedure comenzarClick(Sender: TObject);
procedure siguienteClick(Sender: TObject);
procedure anteriorClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type datos=record
numero:integer;
nombre:string[30];
sexo:char;
domicilio:string[25];
localidad:string[15];
end;
var
form1: Tform1;
registro:datos;
fichero:file of datos;
implementation
{$R *.DFM}
procedure leer;
begin
read(fichero,registro);
with form1 do
begin
num.text:=inttostr(registro.numero);
nomb.text:=registro.nombre;
domi.text:=registro.domicilio;
loca.text:=registro.localidad;
if registro.sexo='m' then
sex.itemindex:=0
else
sex.itemindex:=1;
end;
end;
procedure Tform1.CerrarClick(Sender: TObject);
begin
close;
end;
procedure Tform1.FormCreate(Sender: TObject);
begin
assignfile(fichero,'alumno.dat');
rewrite(fichero);
end;
procedure Tform1.GrabarClick(Sender: TObject);
begin
// muevo los valores de los controles al registro
with registro do
begin
numero:=strtoint(num.text);
nombre:=nomb.text;
if sex.itemindex=0 then
sexo:='M'
else
sexo:='V';
domicilio:=domi.text;
localidad:=loca.text;
end;
write(fichero,registro);
num.clear;
nomb.clear;
sex.itemindex:=-1;
domi.clear;
loca.clear;
num.setfocus;
end;
procedure Tform1.comenzarClick(Sender: TObject);
begin
reset(fichero);
leer;
end;
procedure Tform1.siguienteClick(Sender: TObject);
begin
if not eof(fichero) then
leer
else
showmessage('Se ha alcanzado el fin de fichero');
end;
procedure Tform1.anteriorClick(Sender: TObject);
begin
if filepos(fichero)>1 then
begin
seek(fichero,filepos(fichero)-2);
leer;
end
else
showmessage('Es el primer registro');
end;
end.
No hay comentarios:
Publicar un comentario