Binary Error Record

When runnning the Linklst2.dpr, why does Delphi 1.0 create such a big binary record file eg: the binary file size is
LINKEXP .DTA   51,282 .a.. 02-05-97  7:14:10 pm
from such a small bunch of records (100 records), when using all your default settings in the link list demo?

After making a copy of the above program, I changed the total records to 3000 and the binary file size blew out to >1.5M in size.

Whats happening and why?

How can I limit the binary file to its logical smallest size?

*******************

const
  Max = 100; {max records for text file, therefore max linked list size}

Record Structure

type
  PMyNode = ^TMyNode;
  TMyNode = record
    Name  : String;
    Flight: integer;
    Day   : String;
    Next  : PMyNode;  {Used to link each field}
  end;

sample of the write procedure

procedure TDataForm.CreateNewFile;
var
  F: File of TMyNode;
  Head: PMyNode;
begin
  Head := FirstNode;
  System.Assign(F, FileName);
  ReWrite(F);
  while Head^.Next <> nil do begin
    System.Write(F, Head^);
    Head := Head^.Next;
  end;
  Write(F, Head^);
  System.Close(F);
end;


*******************

sample dump of the LINKEXP .DTA when viewed from within xtree, showing other data that is most likely not directly related to the record structure but added by delphi.

 009640   ·tkUnknown·tkInteger·tkChar·tkEnumeration·tkFloat·tkString·tkSet
 009680   ·tkClass·tkMethod··TTypeKinds·······TOrdType··············otL··S
 0096C0   aturdayte·otSWord·otUWord·otSLong··TFloatType··············ftSin
 009700   gle·ftDouble·ftExtended·ftComp·ftReal··TMethodKind··············
 009740   mkProcedure·mkFunction··TPropInfoProc····PropInfo·PPropInfoU···~
 009780   ·&·]····A·······U···~·1·&·]·&·y·&·]··y··N···&···y···········U·\·
 0097C0   ·G·Sam771··\··p··\··P··p·BR··8·t··p·Ju·X·····WV····FG··&2·$·u·Iu
 009800   ·^_u·X)·······U·····~·&······v··\····p··\··P···t··x··]····9·t···
 009840   ·y·Ju··t·····u·1···#WV·u··~···0·FG·<&2=···u·Iu·^_u··········U···

Darryl050597Asked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
sperlingConnect With a Mentor Commented:
A string is 256 bytes, therefore your record is 514 bytes.

100*514

Use e.g. string[20] in your record declaration.


Regards,

Erik.
0
All Courses

From novice to tech pro — start learning today.