procedure main() # remove lines removelines("foo.bar",3,2) | stop("Failed to remove lines.") end procedure removelines(fn,start,skip) f := open(fn,"r") | fail # open to read every put(F := [],|read(f)) # file to list close(f) if *F < start-1+skip then fail every F[start - 1 + (1 to skip)] := &null # mark delete f := open(fn,"w") | fail # open to rewrite every write(\!F) # write non-nulls close(f) return # done end