anchor.diff:    fb: TVFDFileBlock;
     startmarker, endmarker: string;
     iblock: string;
  -
     newsaved: boolean;
  -
   begin
     //  Writeln('merging blocks: ');
     newsaved := False;
  
positive.code: 
  implementation
  
  { TVFDFile }
  
  procedure TVFDFile.AddBlock(aposition: integer; ablockid, aformname, ablockdata: string);
  
negative.code: function TVFDFile.GetBlocks: integer;
  var
    n: integer;
    s: string;
    startp, endp: integer;
    formname: string;
    bname, startmarker, endmarker: string;
    datablock: string;
    deletelen: integer;
    dropmarker: boolean;
  begin
    FreeBlocks;
    FParsedData := FFileData;
  
    // searching blocks:
    repeat
      bname     := '';
      formname  := '';
      datablock := '';
      s      := cBlockPrefix;
      startp := pos(s, FParsedData);
      if startp > 0 then
      begin
  