Интересный способ использования функции $translate состоит в использовании её в неочевидных на первый взгляд перестановках.
Реверсирование строки.
Перестановки в строке, например замена формата представления даты
Посмотреть, какие форматы поддерживаются функциями $zd / $zdt / $zt, можно, например, так:
Удаление ненужных с заданием какие оставить:
Замечательный пример использования $tr() в функции получения суммы прописью, есть над чем поломать голову чтобы понять:
http://www.mumps.orelnet.ru/zip/routine/spell.zip
Александр Чудновский Евгений Каратаев
Реверсирование строки.
RE(s) ;$$; ПЕРЕВОРАЧИВАЕТ СТРОКУ Q:$L(s)>26 $$RE($E(s,27,$L(s)))_$$RE($E(s,1,26)) Q $TR("abcdefghijklmnopqrstuvwxyz","zyxwvutsrqponmlkjihgfedcba",s)Здесь используется $tr для реверса части строки не используя $re.
Перестановки в строке, например замена формата представления даты
w $tr("Dd.Mm.YyUu","YyUuMmDd",$zd($h,8)) 31.08.2005 w $tr("Dd Mm YyUu","YyUuMmDd",$zd($h,8)) 31 08 2005Как и в первом случае здесь в качестве конвертируемых данных выступает третий аргумент, второй аргумент задает формат в котором представлен третий, а первый аргумент задает формат к которому следует привести данные.
Посмотреть, какие форматы поддерживаются функциями $zd / $zdt / $zt, можно, например, так:
f i=1:1:12 w i,": ",$zd($h,i),! 1: 08/31/2005 2: 31 Aug 2005 3: 2005-08-31 4: 31/08/2005 5: Aug 31, 2005 6: Aug 31 2005 7: Aug 31 2005 8: 20050831 9: August 31, 2005 10: 3 11: Wed 12: WednesdayТакже можно использовать $tr для реверса формата, например
s date=$tr("Dd.Mm.YyUu","YyUuMmDd",$zd($h,8)) date="01.09.2005" w $tr("YyUuMmDd","Dd.Mm.YyUu",date) 20050901Использование $tr для удаления ненужных или оставления нужных символов возможно в двухаргументной форме $tr. Удаление ненужных с заданием ненужных символов:
s x=$tr(string,"ненужные")Например s string=$tr(string,"0123456789") удалит из строки все цифры.
Удаление ненужных с заданием какие оставить:
s x=$tr(string,$tr(string,"нужные"))Например s string=$tr(string,$tr(string,"0123456789")) оставит в строке только цифры.
Замечательный пример использования $tr() в функции получения суммы прописью, есть над чем поломать голову чтобы понять:
http://www.mumps.orelnet.ru/zip/routine/spell.zip
Александр Чудновский Евгений Каратаев
Комментариев нет:
Отправить комментарий