1*3906Smckusick (* Copyright (c) 1979 Regents of the University of California *) 2*3906Smckusick 3*3906Smckusick const 4*3906Smckusick sccsid = '@(#)unixio.i 1.1 06/17/81'; 5*3906Smckusick 6*3906Smckusick type 7*3906Smckusick fileptr = record 8*3906Smckusick cnt :integer 9*3906Smckusick end; 10*3906Smckusick 11*3906Smckusick function TELL( 12*3906Smckusick var fptr :text) 13*3906Smckusick {returns} :fileptr; 14*3906Smckusick 15*3906Smckusick var 16*3906Smckusick filesize, headsize, tailsize :integer; 17*3906Smckusick result :fileptr; 18*3906Smckusick 19*3906Smckusick begin 20*3906Smckusick tailsize := 0; 21*3906Smckusick while not eof(fptr) do begin 22*3906Smckusick get(fptr); 23*3906Smckusick tailsize := tailsize + 1 24*3906Smckusick end; 25*3906Smckusick filesize := 0; 26*3906Smckusick reset(fptr); 27*3906Smckusick while not eof(fptr) do begin 28*3906Smckusick get(fptr); 29*3906Smckusick filesize := filesize + 1 30*3906Smckusick end; 31*3906Smckusick reset(fptr); 32*3906Smckusick for headsize := 1 to filesize - tailsize do 33*3906Smckusick get(fptr); 34*3906Smckusick result.cnt := headsize; 35*3906Smckusick TELL := result 36*3906Smckusick end; 37*3906Smckusick 38*3906Smckusick procedure SEEK( 39*3906Smckusick var fptr :text; 40*3906Smckusick var cnt :fileptr); 41*3906Smckusick 42*3906Smckusick var 43*3906Smckusick i :integer; 44*3906Smckusick 45*3906Smckusick begin 46*3906Smckusick reset(fptr); 47*3906Smckusick for i := 1 to cnt.cnt do 48*3906Smckusick get(fptr) 49*3906Smckusick end; 50*3906Smckusick 51*3906Smckusick procedure APPEND( 52*3906Smckusick var fptr :text); 53*3906Smckusick 54*3906Smckusick var 55*3906Smckusick tmp :text; 56*3906Smckusick 57*3906Smckusick begin 58*3906Smckusick rewrite(tmp); 59*3906Smckusick reset(fptr); 60*3906Smckusick while not eof(fptr) do begin 61*3906Smckusick if eoln(fptr) then 62*3906Smckusick writeln(tmp) 63*3906Smckusick else 64*3906Smckusick write(tmp, fptr^); 65*3906Smckusick get(fptr) 66*3906Smckusick end; 67*3906Smckusick reset(tmp); 68*3906Smckusick rewrite(fptr); 69*3906Smckusick while not eof(tmp) do begin 70*3906Smckusick if eoln(tmp) then 71*3906Smckusick writeln(fptr) 72*3906Smckusick else 73*3906Smckusick write(fptr, tmp^); 74*3906Smckusick get(tmp) 75*3906Smckusick end 76*3906Smckusick end; 77