class interface STD_FILE_READ_WRITE
--
-- Originally written by Emmanuel CECCHET --
--
creation
connect_to (new_path: STRING)
feature(s) from INPUT_STREAM
-- State of the stream :
is_connected: BOOLEAN
end_of_input: BOOLEAN
-- Has end-of-input been reached ?
-- True when the last character has been read.
require
is_connected
feature(s) from INPUT_STREAM
-- To read one character at a time :
read_character
-- Read a character and assign it to last_character.
require
not end_of_input
ensure
not push_back_flag
last_character: CHARACTER
-- Last character read with read_character.
push_back_flag: BOOLEAN
-- True in one char is already pushed back.
unread_character
-- Un-read the last character read.
--
require
not push_back_flag
ensure
push_back_flag
feature(s) from INPUT_STREAM
-- Skipping separators :
skip_separators
-- Stop doing read_character as soon as end_of_file is reached
-- or as soon as last_character is not is_separator.
-- When first character is already not is_separator nothing
-- is done.
skip_separators_using (separators: STRING)
-- Same job as skip_separators using separators.
require
separators /= Void
feature(s) from INPUT_STREAM
-- To read one number at a time :
read_integer
-- Read an integer according to the Eiffel syntax.
-- Make result available in last_integer.
-- Heading separators are automatically skipped using
-- is_separator of class CHARACTER.
-- Trailing separators are not skipped.
require
not end_of_input
last_integer: INTEGER
-- Last integer read using read_integer.
read_real
-- Read a REAL and make the result available in last_real
-- and in last_double.
-- The integral part is available in last_integer.
require
not end_of_input
last_real: REAL
-- Last real read with read_real.
read_double
-- Read a DOUBLE and make the result available in
-- last_double.
require
not end_of_input
last_double: DOUBLE
-- Last double read with read_double.
feature(s) from INPUT_STREAM
-- To read one line or one word at a time :
last_string: STRING
-- Access to a unique STRING to get the result computed
-- with read_line, read_word or newline.
-- No new STRING is allocated.
read_line
-- Read a complete line ended by '%N' or end_of_input.
-- Make the result available in last_string.
-- Character '%N' is not added in last_string.
--
-- NOTE: the result is available in last_string without any
-- memory allocation.
require
not end_of_input
read_word
-- Read a word using is_separator of class CHARACTER.
-- Result is available in last_string (no allocation
-- of memory).
-- Heading separators are automatically skipped.
-- Trailing separators are not skipped (last_character is
-- left on the first one).
-- If end_of_input is encountered, Result can be the
-- empty string.
require
not end_of_input
newline
-- Consume input until newline ('%N') is found.
-- Corresponding STRING is stored in last_string.
feature(s) from INPUT_STREAM
-- Other features :
read_line_in (str: STRING)
-- Same jobs as read_line but storage is directly done in str.
--
require
not end_of_input
read_word_using (separators: STRING)
-- Same jobs as read_word using separators.
require
not end_of_input;
separators /= Void
read_tail_in (str: STRING)
-- Read all remaining character of the file in str.
require
str /= Void
ensure
end_of_input
feature(s) from OUTPUT_STREAM
-- To write one character at a time :
put_character (c: CHARACTER)
require
is_connected
feature(s) from OUTPUT_STREAM
put_string (s: STRING)
-- Output s to current output device.
require
is_connected;
s /= Void
feature(s) from OUTPUT_STREAM
-- To write a number :
put_integer (i: INTEGER)
-- Output i to current output device.
require
is_connected
put_integer_format (i, s: INTEGER)
-- Output i to current output device using at most
-- s character.
require
is_connected
put_real (r: REAL)
-- Output r to current output device.
require
is_connected
put_real_format (r: REAL; f: INTEGER)
-- Output r with only f digit for the fractionnal part.
-- Examples:
-- put_real(3.519,2) print "3.51".
require
is_connected;
f >= 0
put_double (d: DOUBLE)
-- Output d to current output device.
require
is_connected
put_double_format (d: DOUBLE; f: INTEGER)
-- Output d with only f digit for the fractionnal part.
-- Examples:
-- put_double(3.519,2) print "3.51".
require
is_connected;
f >= 0
feature(s) from OUTPUT_STREAM
-- Other features :
put_boolean (b: BOOLEAN)
-- Output b to current output device according
-- to the Eiffel format.
require
is_connected
put_pointer (p: POINTER)
-- Output a viewable version of p.
require
is_connected
put_new_line
-- Output a newline character.
require
is_connected
put_spaces (nb: INTEGER)
-- Output nb spaces character.
require
nb >= 0
append_file (file_name: STRING)
require
is_connected;
file_exists(file_name)
flush
feature(s) from STD_FILE_READ_WRITE
path: STRING
feature(s) from STD_FILE_READ_WRITE
connect_to (new_path: STRING)
feature(s) from STD_FILE_READ_WRITE
disconnect
require
is_connected
end of STD_FILE_READ_WRITE