Метод ТИП_ФАЙЛ.СЧИТАТЬ_ПАРАМ
Метод СЧИТАТЬ_ПАРАМ считывает строку, часть строки или несколько строк из файла. Прочитанные данные помещаются в строку или список. Режим чтения определяется задаными параметрами.
ФУНКЦИЯ СЧИТАТЬ_ПАРАМ(ТИП_СТРОКА: парам; ПЕРЕМ ТИП_СТРОКА или ТИП_СПИСОК: данные)
Параметры
- парам
-
Параметры чтения данных из файла. Параметры в строке разделяются точкой с запятой.
В завимости от того, какого типа переменная указана в параметре "данные", доступны для использования различные параметры.
- "EOL" – сохранять символы конца строки CR LF (ASCII 13 10) в данных (EOL - End Of Line). По умолчанию эти символы отбрасываются. Одиночные символы CR и LF также интерпретируются как конец строки и сохраняются в данных. Режим может быть полезен, когда присутствует перенос длинных строк из-за превышения длины 255 символов.
- "PART" – включает режим чтения длинной строки (более 255 символов) по частям. Этот режим применяется только с параметром "данные" строкового типа. По умолчанию длинная строка обрезается до 255 символов, а следующее считывание возвращает уже следующую строку. В режиме чтения по частям следующее считывание возвращает очередную часть длинной строки до тех пор, пока не будет достигнут конец строки. Это единственный способ чтения длинных строк без использования списков.
-
"ALL" – включает режим чтения всего содержимого файла от текущей позиции до конца. Если файл был только что открыт, то считывается все содержимое файла.
Используется только при получении данных в виде объекта "список".
По умолчанию в список считывается только одна строка. Если при этом ее длина превышает 255 символов, то она нарезается на части по 255 символов и в таком виде помещается в список.
Дополнительное указание режима "WRAP" позволяет произвести заполнение списка с учетом имеющихся переносов строк. А дополнительное указание режима "EOL" позволяет сохранить информацию об исходных концах строк и отличать такие переносы от образовавшихся в результате нарезки длинных строк. - "WRAP" – включает переноса по строкам (line wrapping) при чтении содержимого файла. Используется только при получении данных в виде объекта "список" и использовании режима "ALL". Учет имеющихся в тексте переносов строк позволяет более наглядно заполнить список. На части нарезаются только строки длинее 255 символов, а более короткие строки добавляются в список отдельной строкой. По умолчанию в список заносится прочитанное содержимое нарезанное блоками по 255 символов.
- данные
- Выходной параметр. Переменная типа строка или список. Принимает считанные из файла данные.
Замечание 1
Вызов СЧИТАТЬ_ПАРАМ("", стр), где стр является строковой переменной, эквивалентен вызову метода стр=СЧИТАТЬ.
Замечание 2
Вызов СЧИТАТЬ_ПАРАМ("", сп), где сп является переменной типа "список", эквивалентен вызову метода сп.СЧИТАТЬ(файл, ДА).
Пример использования 1
Считывание длинной строки по частям.
файл = "long_utf8.txt" кодировка = "UTF-8" ф = ФАЙЛ_ОТКРЫТЬ(файл, кодировка) ЦИКЛ ПОКА (НЕ ф.КОНЕЦ_ФАЙЛА) стр = "" ф.СЧИТАТЬ_ПАРАМ("PART", стр) // отображаем очередную строку или очередную часть длинной строки ОТЛАДКА(стр) КОНЕЦ_ЦИКЛА
Пример использования 2
Считывание всего содержимого файла с переносом по строкам.
файл = "long_1251.txt" кодировка = "ANSI" СОЗДАТЬ(сп, ТИП_СПИСОК) // открываем файл и считываем все его содержимое ф = ФАЙЛ_ОТКРЫТЬ(файл, кодировка) ф.СЧИТАТЬ_ПАРАМ("ALL;WRAP", сп) // показываем считанный список в окне отладки ЦИКЛ ДЛЯ (и=1, сп.ВСЕГО) ОТЛАДКА(сп.СТРОКА(и)) КОНЕЦ_ЦИКЛА