...
const
MAXDATA = 100;
type
TReg = packed record
dato: string[20];
posi: integer;
end;
TFileReg = file of TReg;
var
fr: TFileReg;
rg: TReg;
vr: array[0..MAXDATA] of TReg;
FName: string;
procedure TForm1.FormCreate(Sender: TObject);
begin
FName:= ExtractFilePath(Application.ExeName) + 'prueba.dat';
AssignFile(fr, FName);
try
Reset(fr);
except
Rewrite(fr);
end;
CloseFile(fr);
Randomize;
end;
procedure TForm1.btnWriteClick(Sender: TObject);
var
i: Integer;
begin
for i:= 0 to MAXDATA-1 do
begin
vr[i].dato:= Format('Registro %d',[i+1]);
vr[i].posi:= i;
end;
with TFileStream.Create(FName, fmOpenWrite) do
try
Position:= 0;
Write(vr, MAXDATA * SizeOf(rg));
finally
Free;
end;
end;
procedure TForm1.btnReadClick(Sender: TObject);
begin
with TFileStream.Create(FName, fmOpenRead) do
try
Position:= 0;
Read(vr, MAXDATA * SizeOf(rg));
finally
Free;
end;
end;
procedure TForm1.btnShowClick(Sender: TObject);
var
i: Integer;
begin
with ListBox1.Items do
begin
Clear;
for i:= 0 to MAXDATA-1 do
Add(Format('%s %d',[vr[i].dato, vr[i].posi]));
end;
end;