前回の記事「Bot Storeで新しい機能を追加しよう!」でBot Store上から拡張機能を簡単に追加する方法を紹介しました。この方法を使って、さっそくよく使われる処理を追加していきたいと思います。
今回は、文字列/数値処理でよく使われるAA純正の6つのMeta Botを紹介します。
- Perform String and Number Operations
- Perform Japanese Utilities
- Email Address Validator
- Remove HTML Tags
- Perform Various Math Operations
- Translator Metabot
Perform String and Number Operations
文字種の判別、変換、書式変更や数字を処理する10個の追加のコマンドを提供します。
算術処理
ロジック名 | Inputパラメータ | Outputパラメータ | 説明 |
---|---|---|---|
Arithmetic Operations on Numbers | **Input_Number_1:**引数1 **Input_Number_2:**引数2 **Arithmetic_Operation:**演算子 **Number_of_Decimals_in_Result:**出力先の小数点以下の桁数。 |
**Result:**出力先の変数 | 演算子を使った算術演算を行います。演算子に指定できるもの="+-*/" |
IsPositive | **InputString:**引数 | **Result:**出力先の変数 | 引数が正の値かどうかを判定します。(True/False)文字列の場合もFalseになります。 |
文字列処理
ロジック名 | Inputパラメータ | Outputパラメータ | 説明 |
---|---|---|---|
Add Zeroes before a Number | **Input_Number:**引数 **Desired_Length_Including_Zeroes:**出力の桁数 |
**Result:**出力先の変数 | 桁数が指定したものになるよう、数字の前を0で埋めた文字列を返します。(ex. 4桁なら"0100") |
Convert Number to Currency | **Culture_Name:**引数 **Input_Number:**引数 |
**Result:**出力先の変数 | 指定したCulture_Nameの通貨で引数をフォーマットした文字列を返します。(ex. enなら$100) |
Convert Number to Text | **Input_Number:**引数 **IsIndianFormat:**インド方言(true/false) |
**Result:**出力先の変数 | 引数の数字を、読み方の英単語に変換します。(ex: 100000 → One hundred Thousand) |
IsAlphanumeric | **Input_Number:**引数 | **Result:**出力先の変数 | 引数が英数字かを判別します。(True/False) |
IsDate | **Input_Number:**引数 | **Result:**出力先の変数 | 引数が日付かを判別します。(True/False) |
IsNumeric | **Input_Number:**引数 | **Result:**出力先の変数 | 引数が数字かを判別します。(True/False) |
IsSpecialCharacter | **Input_Number:**引数 | **Result:**出力先の変数 | 引数が記号かを判別します。(True/False) |
Remove Special Characters | **Input_Number:**引数 | **Result:**出力先の変数 | 引数から記号を取り除きます。 |
Arithmetic Operations on Numbersの例:
Input_Number_1="10", Input_Number_2="5"
Arithmetic_Operation="+", Number_of_Decimals_in_Result="2"
結果:"15.00"
Perform Japanese Utilities
半角/全角の変換、および日付書式の西暦/和暦の変換を行うことができます。
ロジック名 | Inputパラメータ | Outputパラメータ | 説明 |
---|---|---|---|
ToFullWidth | **vInput:**入力文字列 | **vOutput:**出力先の変数 | 半角文字で対応する全角文字があるものを全角文字に変更します。 |
ToGregorianCalendar | **vInput:**日付/時刻文字列 **vInputFormat:**入力文字列の日付形式 **vOutputFormat:**出力文字列の日付形式 |
**vOutput:**出力先の変数 | 日付/時刻の書式を指定した西暦の書式に変更します。 |
ToHalfWidth | **vInput:**入力文字列 | **vOutput:**出力先の変数 | 全角文字で対応する半角文字があるものを半角文字に変更します。 |
ToJapaneseCalendar | **vInput:**日付/時刻文字列 **vInputFormat:**入力文字列の日付形式 **vOutputFormat:**出力文字列の日付形式 |
**vOutput:**出力先の変数 | 日付/時刻の書式を指定した和暦の書式に変更します。(令和対応) |
ToFullWidthの例:
vInput="012345アイウエオabcde"
結果:"012345アイウエオabcde"
ToHalfWidthの例:
vInput="012345あいうえおアイウエオ"
結果:"012345あいうえおアイウエオ"
ToJapaneseCalendarの例:
vInput="09/02/2019 09:00:00 PM", vInputFormat="MM/dd/yyyy", vOutputFormat="ggy年M月d日"
結果: "令和元年9月2日"
Email Address Validator
文字列が電子メールアドレスとして正しいフォーマットかを検証します。
ロジック名 | Inputパラメータ | Outputパラメータ | 説明 |
---|---|---|---|
EmailAddressValidator | **vEmailAddress:**検証する文字列。 | **vConfirm:**出力先の変数 | vEmailAddressが電子メールアドレスとして正しいフォーマットかを検証します。(valid/invalid) |
Remove HTML Tags
入力した文字列からHTMLタグを取り去った文字列を出力します。入力文字列によってはエラーが発生する可能性があるので、Error Handlingを行ってください。
ロジック名 | Inputパラメータ | Outputパラメータ | 説明 |
---|---|---|---|
RemoveHTMLTags | **vInputString:**加工する文字列。 | **vOutputString:**出力先の変数 | 入力した文字列からHTMLタグを取り去った文字列を出力します。 |
例: 入力する文字列
<!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Verdana;
panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
{font-family:Roboto;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
{mso-style-name:msonormal;
mso-margin-top-alt:auto;
margin-right:0in;
mso-margin-bottom-alt:auto;
margin-left:0in;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
span.EmailStyle18
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:windowtext;}
span.EmailStyle19
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
-->
<p class="MsoNormal"><strong><u><span style="font-size:12.0pt;font-family:"Calibri",sans-serif;color:black">Effective:
</span></u></strong><strong><u><span style="font-size:12.0pt;font-family:"Calibri",sans-serif">4/26/19</span></u></strong><u><span style="font-size:12.0pt;color:maroon"><o:p></o:p></span></u></p>
<p class="MsoNormal"><b>Effective: 1/29/19<o:p></o:p></b></p>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif">Effective Date: 2019 03 29
<br>
結果:
Effective:
4/26/19
Effective: 1/29/19
Effective Date: 2019 03 29
Perform Various Math Operations
端数処理、三角関数/逆三角関数/双曲線関数、累乗/平方根、最大値/最小値/絶対値など、19個の高度な数学の関数を提供します。その振る舞いは.NETの動作に準拠します。
端数処理
ロジック名 | Inputパラメータ | Outputパラメータ | 説明 |
---|---|---|---|
Ceiling | **vInput:**入力値。 | **vOutput:**出力先の変数 | 切り上げた整数の値を得ます。 |
Floor | **vInput:**入力値。 | **vOutput:**出力先の変数 | 切り捨てた整数の値を得ます。(負の値の場合は元の値を超えない整数) |
Round | **vInput:**入力値。 **vDigits:**入力値。 **vMode:**入力値。 |
**vOutput:**出力先の変数 | 最近接偶数丸め(vMode=0)/四捨五入(vMode=1)を小数点以下vDigitsの桁数を残すように行った数を得ます。 |
Truncate | **vInput:**入力値。 | **vOutput:**出力先の変数 | 切り捨てた整数の値を得ます。(負の値の場合は整数部分を返す) |
三角関数
ロジック名 | Inputパラメータ | Outputパラメータ | 説明 |
---|---|---|---|
Sin | **vInput:**入力値。 | **vOutput:**出力先の変数 | 入力値のSin関数を得ます。引数はラジアン単位の角度を指定します。 |
Cos | **vInput:**入力値。 | **vOutput:**出力先の変数 | 入力値のCos関数を得ます。引数はラジアン単位の角度を指定します。 |
Tan | **vInput:**入力値。 | **vOutput:**出力先の変数 | 入力値のTan関数を得ます。引数はラジアン単位の角度を指定します。 |
逆三角関数
ロジック名 | Inputパラメータ | Outputパラメータ | 説明 |
---|---|---|---|
Asin | **vInput:**入力値。 | **vOutput:**出力先の変数 | 入力値の逆Sin関数を得ます。戻り値としての角度はラジアンを使って -π/2 から π/2 までの範囲で表されます。 |
Acos | **vInput:**入力値。 | **vOutput:**出力先の変数 | 入力値の逆Cos関数を得ます。戻り値としての角度はラジアンを使って 0 から π までの範囲で表されます。 |
Atan | **vInput:**入力値。 | **vOutput:**出力先の変数 | 入力値の逆Tan関数を得ます。戻り値としての角度はラジアンを使って -π/2 から π/2 までの範囲で表されます。 |
Atan2 | **vInput1:**入力値1。 **vInput2:**入力値2。 |
**vOutput:**出力先の変数 | 入力値の逆Tan関数を得ます。ATan(vInput2/vInput1)=ATan(vInput1, vInput2) vInput=0にできるのがATan関数との違いです。 |
双曲線関数
ロジック名 | Inputパラメータ | Outputパラメータ | 説明 |
---|---|---|---|
Sinh | **vInput:**入力値。 | **vOutput:**出力先の変数 | 入力値のSinh関数を得ます。 |
Cosh | **vInput:**入力値。 | **vOutput:**出力先の変数 | 入力値のCosh関数を得ます。 |
Tanh | **vInput:**入力値。 | **vOutput:**出力先の変数 | 入力値のTanh関数を得ます。 |
累乗/平方根
ロジック名 | Inputパラメータ | Outputパラメータ | 説明 |
---|---|---|---|
Pow | **vInput1:**入力値1。 **vInput2:**入力値2。 |
**vOutput:**出力先の変数 | vInput1のvInput2乗の累乗を得ます。 |
Sqrt | **vInput:**入力値。 | **vOutput:**出力先の変数 | 平方根を得ます。 |
最大値/最小値/絶対値
ロジック名 | Inputパラメータ | Outputパラメータ | 説明 |
---|---|---|---|
Abs | **vInput:**入力値。 | **vAbsValue:**出力先の変数 | 絶対値を得ます。 |
Max | **vInput1:**入力値1。 **vInput2:**入力値2。 |
**vOutput:**出力先の変数 | vInput1とvInput2のうち大きいほうを得ます。 |
Min | **vInput1:**入力値1。 **vInput2:**入力値2。 |
**vOutput:**出力先の変数 | vInput1とvInput2のうち小さいほうを得ます。 |
Translator Metabot
Yandex 機械翻訳サービスに接続してテキストを翻訳します。90言語以上をサポートします1。
ロジック名 | Inputパラメータ | Outputパラメータ | 説明 |
---|---|---|---|
An easy translator Metabot | **vLangDetect:**元の言語。指定しなくてもよいがその場合は空の変数を指定。 **vLang:**翻訳先の言語 (ex: en)。 **vText:**翻訳するテキスト。 |
**vResult:**出力先の変数 | vTextを指定した言語に翻訳します。 |
例1:
vLangDetect=(空の変数)
vLang="en"
vText="O robô detecta o idioma do documento, E traduz para o idioma que você quer."
結果:"The robot detects the languauge of the document, And translates it to the language you want."
例2:
vLangDetect=(空の変数)
vLang="ja"
vText="O robô detecta o idioma do documento, E traduz para o idioma que você quer."
結果:"ロボットを検出し語の文書を変換しい言語に対応しています。"