|
version 1.49, 2002/06/20 15:42:28
|
version 1.63, 2002/08/06 14:25:36
|
|
Line 272 odbc c:\drives\y\parser3project\odbc\
|
Line 272 odbc c:\drives\y\parser3project\odbc\
|
| <0 = не найдено |
<0 = не найдено |
| !^строка.replace[$таблица_подстановок_строка_на_строку] |
!^строка.replace[$таблица_подстановок_строка_на_строку] |
| !^строка.save[[append;]путь] |
!^строка.save[[append;]путь] |
| |
!^строка.normalize[] выдает другую строку, в которой фрагменты на одном языке объединены |
| |
полезно делать перед сложными match операциями, если вы знаете, что входная строка |
| |
состоит из большого числа фрагментов |
| |
|
| !table |
!table |
| в выражении |
в выражении |
| логическое значение равно "не пуста?" |
логическое значение равно "не пуста?" |
| числовое значение равно count[] |
числовое значение равно count[] |
| !^table::create[[nameless]]{данные} старое имя "set" |
!^table::create[[nameless]]{данные} старое имя "set" |
| !^table::create[table] |
!^table::create[table][[$.limit(1) $.offset(5) $.offset[cur]]] |
| клонирует таблицу |
клонирует таблицу |
| !^table::load[[nameless;]путь] |
!^table::load[[nameless;]путь] |
| !если не nameless, названия колонок берутся из первой строки |
!если не nameless, названия колонок берутся из первой строки |
| !пустые строки, и строки в первой колонке содержащие '#', игнорируются |
!пустые строки, и строки в первой колонке содержащие '#', игнорируются |
|
Line 300 odbc c:\drives\y\parser3project\odbc\
|
Line 303 odbc c:\drives\y\parser3project\odbc\
|
| X^таблица.remove(position[;count]) - стирает запись |
X^таблица.remove(position[;count]) - стирает запись |
| из текущей позиции [стирает запись из конкретной позиции] |
из текущей позиции [стирает запись из конкретной позиции] |
| [стирает count записей] |
[стирает count записей] |
| !^таблица.join[таблица] - добавляет записи из таблицы. |
!^таблица.join[таблица][$.limit(1) $.offset(5) $.offset[cur]] - добавляет записи из таблицы. |
| таблицы должны иметь одинаковую структуру. |
таблицы должны иметь одинаковую структуру. |
| !^таблица.flip[] выдаёт транспонированную, надо куда-то сложить, потом пользовать |
!^таблица.flip[] выдаёт транспонированную, надо куда-то сложить, потом пользовать |
| !^таблица.locate[поле;значение] передвигает текущую строку, если найдёт. выдаёт bool |
!^таблица.locate[поле;значение] передвигает текущую строку, если найдёт. выдаёт bool |
|
Line 414 Xhashfile
|
Line 417 Xhashfile
|
| ^code.cache[заголовки новостей](35){....} |
^code.cache[заголовки новостей](35){....} |
| |
|
| !mail |
!mail |
| |
!$mail.received=MESSAGE: |
| |
.from |
| |
.reply-to |
| |
.subject |
| |
.date класса date |
| |
.message-id |
| |
.raw[ |
| |
.СЫРОЕ_ПОЛЬЗОВАТЕЛЬСКОЕ-ПОЛЕ-ЗАГОЛОВКА |
| |
] |
| |
$.{text|html|file#}[ << нумеруется как и в mail:send (text, text2, ...) (file, file2, ...) |
| |
$.content-type[ |
| |
$.value[{text|...|x-unknown}/{plain|html|...|x-unknown}] |
| |
[$.charset[windows-1251]] << в каком пришло, сейчас уже перекодировано |
| |
$.ПОЛЬЗОВАТЕЛЬСКИЙ-ПАРАМЕТР-ЗАГОЛОВКА |
| |
] |
| |
$.description |
| |
$.content-id |
| |
$.content-md5 |
| |
$.content-location |
| |
.raw[ |
| |
.СЫРОЕ_ПОЛЬЗОВАТЕЛЬСКОЕ-ПОЛЕ-ЗАГОЛОВКА |
| |
] |
| |
$.value[строка|FILE] |
| |
] |
| |
$.message#[MESSAGE] (message, message2, ...) |
| |
|
| |
!^mail:send[ |
| |
$.charset[кодировка заголовка и текстовых блоков] |
| |
$.any-header-field |
| |
$.text[string] |
| |
$.text[ |
| |
$.any-header-field |
| |
$.value[string] |
| |
] |
| |
$.html{string} |
| |
$.html[ |
| |
$.any-header-field |
| |
$.value{string} |
| |
] |
| |
$.file#[FILE] |
| |
$.file#[ |
| |
$.any-header-field |
| |
$value[FILE] |
| |
] |
| |
] |
| |
!если charset указан, письмо перекодируется в этот charset |
| |
!content-type.charset не влияет на перекодирование |
| |
!после имени части может идти # число |
| |
^mail:send[ |
| |
# по-умолчанию, совпадает с source encoding. |
| |
# задаёт кодировку body |
| |
$.charset[windows-1251] |
| |
# нет умолчания |
| |
$.content-type[$.value[text/plain] $.charset[windows-1251]] |
| |
$.from["вася" <vasya@design.ru>] |
| |
$.to["петя" <petya@design.ru>] |
| |
$.subject[пойдём пивка] |
| |
$.body[ |
| |
слова |
| |
] |
| |
] |
| !:send[$.header-field[] $.charset[кодировка письма] $.body[когда body не строка, |
!:send[$.header-field[] $.charset[кодировка письма] $.body[когда body не строка, |
| а hash, отсылается multipart письмо]] |
а hash, отсылается multipart письмо]] |
| !если charset указан, письмо перекодируется в этот charset |
!если charset указан, письмо перекодируется в этот charset |
| !content-type.charset не влияет на перекодирование |
!content-type.charset не влияет на перекодирование |
| |
!после имени части может идти целое число, части пойдут в порядке чисел. |
| !если body указан строкой, то это текст письма, никаких вложений. |
!если body указан строкой, то это текст письма, никаких вложений. |
| !если body указан hash, то это части, будут собраны текстовые блоки, затем вложения |
!если body указан hash, то это части, будут собраны текстовые блоки, затем вложения |
| |
!это старый формат, поддерживается для обратной совместимости |
| !если имя части начинается со слова text, то это текстовый блок. |
!если имя части начинается со слова text, то это текстовый блок. |
| !если имя части начинается со слова attach, то это вложение, формат задания:: |
!если имя части начинается со слова attach, то это вложение, формат задания:: |
| !$attach[$.format[!uue|Xbase64] $.value[DATA] $.file-name[user-file-name]] |
!$attach[$.format[!uue|Xbase64] $.value[DATA] $.file-name[user-file-name]] |
| !после имени части может идти целое число, части пойдут в порядке чисел. |
|
| !важно: при multipart не указывать content-type |
!важно: при multipart не указывать content-type |
| ^mail:send[ |
^mail:send[ |
| # по-умолчанию, совпадает с source encoding. |
# по-умолчанию, совпадает с source encoding. |
|
Line 526 Xhashfile
|
Line 591 Xhashfile
|
| возвращённый заголовок рассыпается на $поля |
возвращённый заголовок рассыпается на $поля |
| $status |
$status |
| $stderr |
$stderr |
| !^file::exec[имя файла[;env hash[;1cmd[;2line[;3ar[;4g[;5s;...under win32 max 10 args]]]]]]] |
!^file::exec[имя файла[;env hash $.stdin[текст][;1cmd[;2line[;3ar[;4g[;5s;...under win32 max 10 args]]]]]]] |
| !^file:move[старое имя файла;новое имя файла] |
!^file:move[старое имя файла;новое имя файла] |
| можно переименовывать и двигать каталоги[win32: но не через границу дисков] |
можно переименовывать и двигать каталоги[win32: но не через границу дисков] |
| каталоги для dest создаются с правами 775 |
каталоги для dest создаются с правами 775 |
|
Line 553 math
|
Line 618 math
|
| !^math:degrees radians |
!^math:degrees radians |
| !^math:pow sqrt |
!^math:pow sqrt |
| !^math:random(ширина диапазона) |
!^math:random(ширина диапазона) |
| ^math:{C2C0983C-E26E-4169-BD07-77ECE9405BA5} |
^math:GUID {C2C0983C-E26E-4169-BD07-77ECE9405BA5} |
| |
!^math:crypt[password;salt] |
| |
salt prefix $apr1$ вызывает встроенный MD5 алгоритм, |
| |
если нет тела salt, оно создаётся случайным |
| |
$1$ вызывает MD5 алгоритм функции OS 'crypt', если поддерживается [заведомо нет на solaris]. |
| |
другие salt читайте документацию по функции OS 'crypt'. |
| |
|
| !date |
!date |
| !время типа time можно использовать в выражениях, подставляет |
!время типа time можно использовать в выражениях, подставляет |
|
Line 572 math
|
Line 641 math
|
| !$date.year month day hour minute second weekday todo:yearday |
!$date.year month day hour minute second weekday todo:yearday |
| read-only |
read-only |
| !^date.roll[year|month|day](+-смещение) сдвигает дату |
!^date.roll[year|month|day](+-смещение) сдвигает дату |
| |
возможно, флажок, подправляющий день |
| !^date.sql-string[] %Y-%m-%d %H:%M:%S |
!^date.sql-string[] %Y-%m-%d %H:%M:%S |
| where published='$дата.sql-string[]' |
where published='$дата.sql-string[]' |
| !^date:calendar[rus|eng;год;месяц] выдаёт неименованную таблицу |
!^date:calendar[rus|eng;год;месяц] выдаёт неименованную таблицу |
| столбцы: 0..6 |
столбцы: 0..6, week |
| !^date:calendar[rus|eng;год;месяц;день] выдаёт именнованную таблицу |
!^date:calendar[rus|eng;год;месяц;день] выдаёт именнованную таблицу |
| столбцы: year, month, day, weekday |
столбцы: year, month, day, weekday |
| |
|
|
Line 607 xdoc(xnode)
|
Line 677 xdoc(xnode)
|
| !равно текущей кодировке выходной страницы, |
!равно текущей кодировке выходной страницы, |
| $response:charset |
$response:charset |
| ::sql{...} |
::sql{...} |
| !::create{<?xml?><string/>} старое имя 'set' |
!::create[[URI]]{<?xml?><string/>} старое имя 'set' |
| !::create[qualifiedName] |
!::create[[URI]][qualifiedName] |
| |
URI default = disk path to requested document |
| |
для каталогов конечный / обязателен |
| !::load[file.xml] |
!::load[file.xml] |
| !.transform[rules.xsl][[params hash]] выдаёт dom |
!.transform[rules.xsl|xdoc][[params hash]] выдаёт dom |
| шаблон кэшируется, кэш обновляется при изменении даты файла шаблона, |
шаблон кэшируется, кэш обновляется при изменении даты файла шаблона, |
| или изменении даты файла "имя шаблона.stamp"[проверка даты stamp приоритетнее] |
или изменении даты файла "имя шаблона.stamp"[проверка даты stamp приоритетнее] |
| <xsl:output |
<xsl:output |
|
Line 834 xdoc(xnode)
|
Line 906 xdoc(xnode)
|
| !image.format ^image::measure[index.html] not gif/jpg |
!image.format ^image::measure[index.html] not gif/jpg |
| !sql.connect ^connect[mysql://baduser:pass@host/db]{} not found/timeout |
!sql.connect ^connect[mysql://baduser:pass@host/db]{} not found/timeout |
| !sql.execute ^void:sql{select bad} syntax error |
!sql.execute ^void:sql{select bad} syntax error |
| |
sql.duplicate |
| |
sql.access |
| |
sql.missing |
| |
sql.xxx [serge asked] |
| !xml ^xdoc::create{<forgot?>} any error in xml/xslt libs |
!xml ^xdoc::create{<forgot?>} any error in xml/xslt libs |
| !smtp.connect not found/timeout |
!smtp.connect not found/timeout |
| !smtp.execute communication error |
!smtp.execute communication error |