I'm getting errors in
myRead(Fields.Fieldnr, 2);
myRead(Fields.Fieldname, 1);
myRead(Fields.FieldData, 1);
and by that for nrs := 0 to Fields.Fieldnr - 1do isnt working.
program Crear;
uses SysUtils;
type
THeader = record
Serial: Word; //2 bytes
Filename: String[255]; //1 byte
Date: Word; //2 bytes
Fieldnrs: Word; //2 bytes
end;
TFields = record
Fieldnr: Word; //2 bytes
Fieldname: String[255]; //1 byte
FieldData: String[255]; //1 Byte
end;
var
BinaryStream: File;
Header: THeader;
Fields: array [0..20] of TFields;
nrs: Integer; //2 bytes
procedure myRead(var Buffer; Size: Integer);
begin
BlockRead(BinaryStream, Buffer, Size);
end;
begin
assign(BinaryStream, 'C:\Dev-Pas\EXAMEN2.dat');
reset(BinaryStream, 1);
myRead(Header.Serial, 2);
myRead(Header.Filename[0], 1);
myRead(Header.Filename[1], ord(Header.Filename[0]));
myRead(Header.Date, 2);
myRead(Header.Fieldnrs, 2);
Header.Serial := Swap(Header.Serial);
Header.Fieldnrs := Swap(Header.Fieldnrs);
for nrs := 0 to Header.Fieldnrs - 1 do
begin
myRead (Fields[nrs].Fieldnr, 2);
Fields[nrs].Fieldnr := Swap (Fields [nrs].Fieldnr);
myRead (Fields[nrs].Fieldname[0],1);
myRead (Fields[nrs].Fieldname[1], ord(Fields[nrs].Fieldname[0]));
end;
Writeln ('Nro. de Serie: ', Header.Serial);
Writeln ('Full Filename: ', Header.Filename);
Writeln ('Fecha Modificacion: ', Header.Date);
Writeln ('Cantidad de Campos Customizados: ', Header.Fieldnrs);
for nrs := 0 to Header.Fieldnrs - 1 do
begin
Writeln ('Campo [codigo: ',Fields[nrs].Fieldnr,', ','descripcion: ',Fields[nrs].Fieldname ,']' );
end;
Writeln ('Cantidad de Registros: ', nrs);
Writeln ('------------------------');
myRead(Fields.Fieldnr, 2);
myRead(Fields.Fieldname, 1);
myRead(Fields.FieldData, 1);
for nrs := 0 to Fields.Fieldnr - 1 do
begin
Writeln (Fields[nrs].Fieldname,': ',Fields[nrs].FieldData);
inc(nrs);
end;
Writeln ('----[FIN CONTENIDO DEL ARCHIVO]-----------------');
Close(BinaryStream);
ReadLn;
end.