Оператор WRITE
Оператор WRITE - создание действия, записывающего файл из свойства во внешний ресурс.
Синтаксис
WRITE [CLIENT [DIALOG]] fileExpr TO urlExpr [APPEND]
Описание
Оператор WRITE создает действие, записывающее файл из свойства, во внешний ресурс по заданному URL'у.
Поддерживаются следующие типы URL:
[file://]path_to_file
[s]ftp://username:password[;charset]@host:port[/path_to_file][?passivemode=true|false]
Предполагается, что в URL расширение файла не задается (то есть точка . также считается частью имени файла). Это расширение определяется автоматически, в зависимости от класса записываемого файла, следующим образом:
| Расширение | Класс |
|---|---|
| читается из переданного объекта | FILE |
| json | JSONFILE |
| xml | XMLFILE |
| csv | CSVFILE |
| xls или xlsx в зависимости от содержимого файла | EXCELFILE |
| dbf | DBFFILE |
| table | TABLEFILE |
| html | HTMLFILE |
| doc или docx в зависимости от содержимого файла | WORDFILE |
| jpg | IMAGEFILE |
PDFFILE |
На клиенте текущим директорием считается директорий Downloads внутри пользовательского директория.
Параметры
-
CLIENTКлючевое слово. Если указывается, то действие будет выполнено на клиенте. По умолчанию действие выполняется на сервере.
-
DIALOGКлючевое слово. Если указывается, то перед записью файла, будет показан диалог, в котором пользователь может изменить заданный URL. Можно использовать только при записи на диск (тип URL - file). По умолчанию диалог не показывается.
-
ulrExprВыражение, значением которого является URL.
-
fileExprВыражение, значением которого является файл, который который будет записан во внешний ресурс.
-
APPENDКлючевое слово. Если указывается, то происходит дозапись файла из
fileExprв файл по указанномуurlExpr. Для расширения csv происходит дозапись в конец файла. Для расширений xls и xlsx происходит копирование всех листов из файлаfileExprв файл по указанномуurlExpr. Для остальных расширений не поддерживается. По умолчанию происходит перезапись файла.
Примеры
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';
}
}