Руководство разработчика

Метод ТИП_ФАЙЛ.СЧИТАТЬ_ПАРАМ

Метод СЧИТАТЬ_ПАРАМ считывает строку, часть строки или несколько строк из файла. Прочитанные данные помещаются в строку или список. Режим чтения определяется задаными параметрами.

ФУНКЦИЯ СЧИТАТЬ_ПАРАМ(ТИП_СТРОКА: парам; ПЕРЕМ ТИП_СТРОКА или ТИП_СПИСОК: данные)

Параметры

парам
Параметры чтения данных из файла. Параметры в строке разделяются точкой с запятой. В завимости от того, какого типа переменная указана в параметре "данные", доступны для использования различные параметры.
  • "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, сп.ВСЕГО)
 ОТЛАДКА(сп.СТРОКА(и))
КОНЕЦ_ЦИКЛА

См. также: