[Back to RECORDS SWAG index]  [Back to Main SWAG index]  [Original]

BG>JB>A method that I have successfully used to delete records in place is
BG>JB>to...

  'Scuse me for butting in, but I have another approach which will
  preserve your record order. I will present it for a file of records
  the total size of which is less than 64K. The routine may easily be
  adapted for large files:

procedure del_rec(fname : string;target : longint;rec_size : longint);
type
  t_buf=array[1..65520] of byte;

var
  f : file;
  buf : t_buf;
  n : word;

begin
  new(buf);
  assign(f,fname);  { open your file }
  reset(f,1);
  blockread(f,buf,sizeof(buf),n);
  close(f);

  move(bufucc(target)*rec_size],bufarget*rec_size],n-(target*rec_size));
  dec(n,rec_size);
  rewrite(f,1);
  blockwrite(f,buf,n);
  close(f);
  dispose(buf);
end;
---
 * The Right Place (tm) BBS/Atlanta - 404/476-2607 SuperRegional Hub
 * PostLink(tm) v1.05  TRP (#564) : RelayNet(tm)
---
 þ OLX 2.1 TD þ I just steal 'em, I don't explain 'em.

[Back to RECORDS SWAG index]  [Back to Main SWAG index]  [Original]