function 'FILE'

Краткий обзор

Читает или записывает текстовый файл.

Описание

Читает текстовый файл или записывает в него, работает в символьном или строковом режиме.

Синтаксис

FILE(filename[,offset[,length[,options[,format]]]])

Аргументы

offset

Cмещение.

Может быть указано как любое число.

Если число отрицательно, <offset> указывает количество байтов назад от конца файла.

length

Если указано, длина считываемых данных будет ограничена до заданного размера. Если число отрицательно, обрезает длину (<length>) байтов от конца файла.

options

  • 'l:' Линейный режим: предполагается, что смещение и длина измеряется в строках, вместо байтовых смещений.
  • 'a:' Только в режиме записи, опция используется для добавления в конце файла, вместо перезаписи существующего файла.
  • 'd:' Только в режиме записи и режиме строки, эта опция не добавляет автоматически строку новой линии в конец значения. Это полезно для удаления строк, вместо установки пустых.

format

Параметр <format> может использоваться для определения типа разделителя строки, в режиме строки.

  • 'u:' Формат перевода строки Unix.
  • 'd:' Формат перевода строки Dos.
  • 'm:' Формат перевода строки Macintosh.

Пример

Режим чтения (байт):

 ; Читает все содержимое файла.
 Set(Foo = $ {FILE(/tmp/test.txt)})
 ; Читает с 11-го байта до конца файла (т.е. пропускает первые 10).
 Set(Foo = $ {FILE(/tmp/test.txt,10)})
 ; Читает от 11-го до 20-го байта в файле (т.е. пропускает первые 10, затем читает 10 байт).
 Set(Foo = $ {FILE(/tmp/test.txt,10,10)})

Режим чтения (строка):

 ; Читает 3-ю строку файла.
 Set(Foo = $ {FILE(/tmp/test.txt,3,1,l)})
 ; Читает 3-ю и 4-ю строчки файла.
 Set(Foo = $ {FILE(/tmp/test.txt,3,2,l)})
 ; Читает с третьей строки до конца файла.
 Set(Foo = $ {FILE(/tmp/test.txt,3,,l)})
 ; Читает последние три строки файла.
 Set(Foo = $ {FILE(/tmp/test.txt,-3,,l)})
 ; Читает 3-ю строку файла в формате DOS.
 Set(Foo = $ {FILE(/tmp/test.txt,3,1,l,d)})

Режим записи (байт):

 ; Обрезает файл и пишет "bar".
 Set(FILE(/tmp/test.txt)=bar)
 ; Добавить "bar".
 Set(FILE(/tmp/test.txt,,,a)=bar)
 ; Заменить первый байт на "bar" (заменяет 1 символ на 3).
 Set(FILE(/tmp/test.txt,0,1)=bar)
 ; Заменить 10 байтов, начиная с 21-го байта файла, на "bar".
 Set(FILE(/tmp/test.txt,20,10)=bar)
 ; Заменить все байты с 21-го числа на "bar".
 Set(FILE(/tmp/test.txt,20)=bar)
 ; Вставить «бар» после 4-го символа.
 Set(FILE(/tmp/test.txt,4,0)=bar)

Режим записи (строка):

 ; Заменить первую строку файла на "bar".
 Set(FILE(/tmp/foo.txt,0,1,l)=bar)
 ; Заменить последнюю строку файла на "bar".
 Set(FILE(/tmp/foo.txt,-1,,l)=bar)
 ;Добавить "bar" в файл с новой строки.
 Set(FILE(/tmp/foo.txt,,,al)=bar)
Примечание.
Если в конфиге «asterisk.conf», параметр «live_dangerously=no», то эта функция может быть выполнена только из диалплана, но не через API.

См. live_dangerously

Смотри также

function 'FILE_FORMAT'

function 'FILE_COUNT_LINE'

Asterisk: функции диалплана

  • asterisk/func/file.txt
  • Последние изменения: 2018/12/16