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