18 lines
560 B
Text
18 lines
560 B
Text
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
|