class FILE < $OSTREAM |
---|
**** | Buffered file. Uses the C standard "FILE". To avoid buffering penalties, read or write entire files using an FSTR. For systems which do funny things for linefeeds and cntl-z, this is a text file, not a binary finle, for which you should use BFILE.
___f:_FILE_:=__FILE::open_for_read("test_file"); ___line:_STR_:=_f.get_line;_--_gets_the_next_line __ A more convenient way to parse files is to read them into a string and then use a STR_CURSOR on them. This may even have significantly better performance ___f2:_FILE_:=_FILE::open_for_read("test_file"); ___whole_file:_STR_:=_f2.str;__--_The_whole_file_as_a_string ___cursor:_STR_CURSOR_:=_whole_file.cursor; ___next_integer:_INT_:=_cursor.get_int;_--_Get_an_integer_from_the_file _____________________--_string ___next_word:_STR_:=_cursor.get_word;____--_Read_a_word_from_the_file _ |
$OSTREAM |
end; |
---|
return r |
---|
end; |
---|
**** | Delete a file. |
end; |
---|
**** | The size of self in characters. -1 for error. |
return self; |
---|
r::=new; r.fp:=RUNTIME::fopen(nm,"w+"); |
---|
open_for_update(nm:STR):SAME |
---|
**** | A new object representing the file named `nm' accessible for reading and writing. |
end; |
---|
current_loc:INT |
---|
**** | The current location in the file. |
end; |
---|
fsize::=size; |
---|
r.loc:=bsize; |
---|
return #FSTR(1); |
---|
seek_from_front(start); |
---|
end; |
---|
**** | Create a new file with name `nm' and default permissions. File is truncated and opened for writing. |
open_for_append(nm:STR):SAME |
---|
**** | A new object representing the file named `nm' accessible for appending. File is created if not existing. |
end; |
---|
r::=new; |
---|
r.fp:=stderr_macro; |
---|
**** | This is a hack, to get around the void representation of "". |
RUNTIME::fputc(c,fp) |
---|
end; |
---|
**** | This is a hack, to get around the void representation of "". |
get_up_to(sc:CHAR):STR |
---|
**** | A string buffer containing the characters up to the next c. |
return get_line.str; |
---|
**** | Append the string "s" to the file |
end; |
---|
end; |
---|
builtin FILE_CLEAR; |
---|
**** | for reading and appending. File is created if not existing. |
**** | A file object for stdin. |
stdout_macro:EXT_OB |
---|
stdout:SAME |
---|
**** | A file object for stdout. |
stderr_macro:EXT_OB |
---|
seek_from_front(current); |
---|
plus(s); |
---|
RUNTIME::fputc(c,fp); |
---|
fs::=fwrite_str(ss,ss.length,fp) |
---|
**** | cases are handled by the proper overloading. Hence, this is the most general case and we call str. BV (4/26/96) |