Перейти к основному содержимому
Версия: 7.0

Оператор WRITE

Оператор WRITE - создание действия, записывающего файл из свойства во внешний ресурс.

Синтаксис

WRITE [CLIENT [DIALOG]] fileExpr TO urlExpr [APPEND]

Описание

Оператор WRITE создает действие, записывающее файл из свойства, во внешний ресурс по заданному URL'у.

Поддерживаются следующие типы URL:

[file://]path_to_file
ftp://username:password[;charset]@host:port[/path_to_file][?param1=value1&param2=value2&...]
ftps://username:password[;charset]@host:port[/path_to_file][?param1=value1&param2=value2&...]
sftp://username:password[;charset]@host:port[/path_to_file]

Для ftp и ftps поддерживаются параметры запроса passivemode, binarytransfermode, datatimeout, connecttimeout.

Если в URL после последней точки уже стоит что-то похожее на расширение файла (стандартное MIME-расширение либо короткий — менее 4 символов — суффикс с преобладанием букв над цифрами), оно используется как есть. В противном случае точка . считается частью имени файла, и расширение определяется автоматически, в зависимости от класса записываемого файла, следующим образом:

РасширениеКласс
читается из переданного объектаFILE
jsonJSONFILE
xmlXMLFILE
csvCSVFILE
xls или xlsx в зависимости от содержимого файлаEXCELFILE
dbfDBFFILE
tableTABLEFILE
htmlHTMLFILE
doc или docx в зависимости от содержимого файлаWORDFILE
jpgIMAGEFILE
pdfPDFFILE
mp4VIDEOFILE

На клиенте текущим директорием считается директорий Downloads внутри пользовательского директория.

Параметры

  • CLIENT

    Ключевое слово. Если указывается, то действие будет выполнено на клиенте. По умолчанию действие выполняется на сервере.

  • DIALOG

    Ключевое слово. Если указывается, то перед записью файла, будет показан диалог, в котором пользователь может изменить заданный URL. Можно использовать только при записи на диск (тип URL - file). По умолчанию диалог не показывается.

  • urlExpr

    Выражение, значением которого является URL.

  • fileExpr

    Выражение, значением которого является файл, который будет записан во внешний ресурс. Также допускаются значения JSON-типа: в этом случае значение сериализуется в файл с расширением .json.

  • APPEND

    Ключевое слово. Если указывается, то происходит дозапись файла из fileExpr в файл по указанному urlExpr. Поддерживается только при записи в файловую систему (тип URL — file); для ftp, ftps и sftp использование APPEND вызывает ошибку. Также не допускается совместное использование с CLIENT DIALOG. Поведение по расширениям файла:

    • csv, txt — данные дописываются в конец файла;
    • xls, xlsx — все листы из файла fileExpr копируются в файл по указанному urlExpr;
    • docx — содержимое документа fileExpr присоединяется к документу по указанному urlExpr;
    • pdf — страницы документа fileExpr присоединяются к документу по указанному urlExpr;
    • для остальных расширений не поддерживается.

    Если файл по указанному urlExpr ещё не существует, то WRITE с APPEND работает для любого типа файла: создается новый файл с содержимым fileExpr.

    По умолчанию происходит перезапись файла.

Примеры

loadAndWrite ()  {
INPUT f = FILE DO {
WRITE f TO 'file:///home/user/loadedfile.csv' APPEND;
WRITE CLIENT f TO '/home/user/loadedfile.txt';
WRITE CLIENT DIALOG f TO 'loadedfile';
}
}