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

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

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

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

Параметры

парам
Параметры записи данных в файл. Параметры в строке разделяются точкой с запятой.
  • "NOEOL" – не добавлять символы конца строки CR LF (ASCII 13 10) после записи данных (EOL - End Of Line). По умолчанию эти символы добавляются. В самих данных (как в середине, так и в конце) могут содержаться символы CR и LF (СИМВ(13) и СИМВ(10)). Такие символы записываются в файл как есть.
  • "DELIM:..." – позволяет указать разделитель при слиянии строк списка. Используется только при представлении данных в виде объекта "список". По умолчанию разделитель пустая строка, т.е. строки списка "склеиваются" без разделителя. Например, для записи каждой строки списка как отдельной строки в файле можно указать разделителем символы CR LF: "DELIM:"+СИМВ(13)+СИМВ(10).
данные
Строковое значение или объект типа список, содержащий данные для записи в файл.

Замечание 1

Вызов ЗАПИСАТЬ_ПАРАМ("", стр), где стр является строкой, эквивалентен вызову метода ЗАПИСАТЬ(стр).

Замечание 2

Вызов ЗАПИСАТЬ_ПАРАМ("", сп), где сп является списком, эквивалентен вызову метода сп.ЗАПИСАТЬ(файл, ДА).

Пример использования 1

Считывание и сохранение без потерь.

файл = "long_utf8.txt"
кодировка = "UTF-8"

СОЗДАТЬ(сп, ТИП_СПИСОК)

ф = ФАЙЛ_ОТКРЫТЬ(файл, кодировка)
// считываем все содержимое исходного файла
// с переносом по строкам и сохранением концов строк (EOL)
ф.СЧИТАТЬ_ПАРАМ("ALL;WRAP;EOL", сп)

// показываем считанный список в окне отладки 
ЦИКЛ ДЛЯ (и=1, сп.ВСЕГО)
  ОТЛАДКА(сп.СТРОКА(и))
КОНЕЦ_ЦИКЛА

// создаем новый файл
ф2 = ФАЙЛ_СОЗДАТЬ("new_" + файл, кодировка)
// записываем список без завершающего конца строки
ф2.ЗАПИСАТЬ_ПАРАМ("NOEOL", сп)
// получаем файл идентичный исходному

Пример использования 2

Сохранение списка с разделителем строк LF (ASCII 10), как это принято в Unix-подобных системах.

// заполняем список данными
СОЗДАТЬ(сп, ТИП_СПИСОК)
сп.ДОБАВИТЬ("Строка 1")
сп.ДОБАВИТЬ("Строка 22")
сп.ДОБАВИТЬ("Строка 333")

// создаем новый файл
ф = ФАЙЛ_СОЗДАТЬ("test.txt", "UTF-8.NoBOM")
// записываем список без завершающего конца строки (CRLF)
ф.ЗАПИСАТЬ_ПАРАМ("DELIM:" + СИМВ(10) + ";NOEOL", сп)

См. также: