Домой Классы Статические функции Перечисления (ENUM) Структуры (STRUCTURE)

{Stream|_base_class}


CLASS {Stream|_base_class} , ABSTRACT, BYTES, BITWISE, UNTESTED :


Базовый класс для всех классов потоков данных ({File_stream}, {Memory_stream}, ...)


IMPORT : {String_functions} .


--------------------------------------------------------- 'размер, позиция'

 

METHOD Size|_of_stream_dummy ==> {Long_int}.{long}


Размер потока в байтах. Т.к. размер может значительно превышать максимально возможное целое значения, для представления размера потока используется вещественный тип данных.


METHOD Position|_in_stream_dummy ==> {long}


Текущая позиция в потоке, в байтах. Так же представляется вещественным значением.


METHOD Set_pos|ition (
     
{long} New|_position_dummy ,
     
{disp} Disp|osition_from_dummy )


Изменяет текущую позицию в потоке. Параметр Disposition указывает, относительно какой позиции отсчитывается новое положение курсора чтения-записи. Таким образом, параметр New может иметь отрицательное значение для смещения назад от указанной точки.


METHOD Rewind|_to_beginning



ENUMERATION {disp|osition_from} :

        'BEGINNING|_POSITION' ,

        'CURRENT|_POSITION' ,

        'ENDING|_POSITION' .


Три возможные позиции для отсчета новой позиции при ее установке (начало, текущая позиция в потоке или длина всего потока).


METHOD Ended|_stream || EOF || EndOfFile ==> BOOL


Возвращает TRUE, если поток завершен в процессе чтения (или его позиция Position стала больше или равна его размеру Size).


---------------------------------------------------------------- 'закрытие'


METHOD Close|_stream


Закрывает поток. Вызывайте этот метод, если вы не планируете далее работать с этим потоком. Если объект потока уничтожается (при исчерпании активных жестких ссылок на него), этот метод вызывается автоматически.


METHOD Closed|_stream ==> BOOL


Возвращает TRUE в случае "закрытого" потока. Чтение/запись для закрытого потока невозможны (игнорируются).


------------------------------------------------ 'чтение запись побайтовая'

     

METHOD Load_bytes (
     
BYTE Dest|ination_dynamic [] ,
     
INT Count|_bytes_to_read_maximum ) ==> BOOL


Читает байты в заданный массив Dest[] (предварительно очищая его). Если чтение успешно, возвращается TRUE. Окончательный размер буфера может быть меньше размера, заданного параметром Count. Значение FALSE возвращается, если не удалось прочитать ни одного байта.


METHOD Read_bytes ( BYTE Dest|ination [*] ) ==> INT


Читает байты в заданный фиксированный массив Dest[], возвращая число прочитанных байтов. Это число может быть меньше размера переданного массива.


METHOD Read_byte ==> BYTE



METHOD Read_word ==> INT



METHOD Read_dword ==> INT



METHOD Save_bytes ( BYTE Source|_bytes [*] ) ==> INT


Записывает байты из заданного фиксированного массива Dest[], возвращая количество успешно записанных байтов.


METHOD Write_byte ( BYTE B|yte_single )


Записывает одиночный байт, переданный параметром B.


METHOD Write_int|eger_32bit (
     
INT Value|_4_bytes ) , DEPRECATED('Platform dependent')



METHOD Write_double (
     
REAL D|ouble_value|_8_bytes ) , DEPRECATED('Platform dependent')



------------------------------------------------ 'копирование части потока'


METHOD Copy_stream|_rest (
     
{Stream} Source|_stream ) , OPERATORS


Копирует остаток переданного в качестве параметра исходного потока Stream, записывая в этот поток с текущей позиции.


METHOD Copy_part_of_stream (
     
{Stream} Source|_stream ,
     
{long} Len|gth_bytes ) , OPERATORS


Копирует часть переданного в качестве параметра исходного потока Stream, записывая в этот поток с текущей позиции. Копируется не более чем Len байтов.


----------------------------------------------- 'работа со строками текста'

{String_functions}.{encoding} Encoding|_for_strings , READ



METHOD Set_encoding ( {encoding} Value|_encoding )


Устанавливает кодировку для объекта потока.


METHOD Detect_encoding|_call_only_at_the_start_of_reading_stream


Определяет кодировку входного потока, использщуя BOM-последовательность в начале (файла). Следует вызывать, когда позиция чтения равна 0.


METHOD Get_string ( INT Len|gth_read_exactly ) ==> STR


Читает строку из входного потока (заданной параметром Len длины - или короче, если чтение идет в конце потока).

BOOL Disable_auto_detect


 

METHOD Get_line ==> STR


Читает строку из входного потока (до символов конца строки, но в результат эти символы не включаются).


METHOD Write|_as_is ( STR S|tring_to_write_as_is )



METHOD Write_string ( STR S|ource_string ) ==> BOOL


Записывает строку в выходной поток. Если необходимо записать символы новой строки, то их следует добавить к параметру S (в конец передаваемой строки), или записать в отдельном вызове метода Write_string. Или используйте метод Write_line.


METHOD Write_line ( STR S|ource_line ) ==> BOOL


Записывает строку в выходной поток, добавляя символы конца строки.


-------------------------------------- 'Запись BOM в начало UNICODE-потока'


METHOD Write_bom


Записывает байты BOM в выходной поток, в соответствии с кодировкой, установленной для потока.

END


См. так же с защищёнными членами