Hola napsterk89, bienvenido a
Club Delphi
Como es costumbre con los que se inician, te invitamos a que leas nuestra
guía de estilo.
No sé la finalidad del código y si la cumple, pero sintácticamente es correcto. Es decir, si las declaraciones del registro y archivo son las adecuadas, el código compila y ejecuta.
Para verificarlo crea una nueva aplicación, pone un
TButton y un
TListBox y realiza esta simple prueba:
Código Delphi
[-]
...
implementation
type
TRegistro = packed record
Temporada : string[5];
Tarifa: Single;
end;
TArchivo = file of TRegistro;
var
Archivo: TArchivo;
Res : TRegistro;
CAlta,CMedia,CBaja: integer;
RAlta,RMedia,RBaja:Real;
procedure TForm1.FormCreate(Sender: TObject);
const
TEMPO : array[0..2] of string = ('Alta', 'Media', 'Baja');
var
i: Integer;
begin
Randomize;
AssignFile(Archivo, ExtractFilePath(Application.Exename) + 'Archivo.dat');
try
Reset(Archivo);
except
Rewrite(Archivo);
for i:= 1 to 10 do
begin
Res.Temporada:= TEMPO[Random(3)];
Res.Tarifa := i;
Write(Archivo,Res);
end;
end
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Seek(Archivo, 0);
while not Eof(Archivo) do
begin
Read(Archivo, Res);
if (Res.Temporada='Alta') then
begin
CAlta:= CAlta + 1;
RAlta:= RAlta + Res.Tarifa;
end
else if (Res.Temporada='Media') then
begin
CMedia:= CMedia + 1;
RMedia:= RMedia + Res.Tarifa;
end
else
begin
RBaja:= RBaja + Res.Tarifa;
CBaja:= CBaja + 1;
end;
end;
Listbox1.items.Add(IntToStr(CAlta));
end;
...
Saludos