[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(buf[succ(target)*rec_size],buf[target*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]