文字列(Ver8.91対応版)
目次式について− 文字列
 文字列は、ダブルクォーテーションで囲みます。
"ABC"
 ダブルクォーテーション記号そのものや\マークは、\を付けて指定します。
"これは、\"文字列\"です。"
"\\記号"
 タブ文字は\t,改行文字は\n で指定できます。
insert "\n";
 文字コードを指定したい場合は、\xを使って16進数で指定します。
"文字コード41は、\x41です。"
 8進数の表記には対応していません。(例えば\oooのoに数字を書く書き方)

 Unicodeで文字コードを指定したい場合は、\uの後に16進数4桁で指定します。
 または\Uの後に16進数8桁で指定します。(V8.52以降)
 Unicodeの表示は、原則的に編集エリアのみで行うことができます。Windows NT,2000,XPにおいては、message文,question文などのメッセージを出すところでも可能です。
"Unicodeで「あ」は、\u3042です。"
 マクロファイルをUnicode(UTF-16)で保存すると、Unicodeの文字を直接記述できます。(V8.00以降)
 Unicode(UTF-16)で保存する場合は、必ずBOM付きである必要があります。

 マクロファイルをUnicode(UTF-8)で保存すると、Unicodeの文字を直接記述できます。(V8.50以降)
 Unicode(UTF-8)で保存する場合は、必ずBOM付きである必要があります。

 Unicode(UTF-16,Big-Endian)には対応していません。

 Unicodeの文字コードを文字列に変換するには、unichar関数を使う方法もあります。


 文字列の演算としては、+ だけが使えます。+ は文字列を連結します。
message $a + "個";


文字列と変数

文字列の中に変数の内容を入れる場合は、ダブルクォーテーションの中に変数名を書き込む方法は使えません。「+」を使って文字列を連結させる必要があります。
また、数値型の変数の値を文字列に結合する際には、str関数などで文字列型に変換してから結合する必要があります。

$moji="あいう";
message "変数の内容は$mojiです";            //×この書き方はできません。
message "変数の内容は" + $moji + "です";    //〇この書き方でできます。

#kazu=123;
message "数値の内容は#kazuです";              //×この書き方はできません。
message "数値の内容は" + #kazu + "です";      //×この書き方もできません。
message "数値の内容は" + str(#kazu) + "です"; //〇この書き方でできます。


「R"」から始まる文字列

 「R"(」または「R"keyword(」で始まる書き方で、文字列をエスケープなしで書くことができます。(V8.66以降)

 「R"(」を始まりにすると、「)"」が現れるまでの全ての文字を文字列として解釈します。
 「R"keyword(」を始まりにすると、「)keyword"」が現れるまでの全ての文字を文字列として解釈します。keywordは任意です。

 文字列として解釈されている範囲の「\」はそのまま「\」と書くことができます。
 「"」はそのまま「"」と書くことができます。
 改行はそのまま改行として複数行で書くことができます。
//以下の2つは同じ
message "文字列";
message R"(文字列)";

//以下の2つは同じ
message "文字列";
message R"hoge(文字列)hoge";

//以下の2つは同じ
message "複数行\n文字列";
message R"(複数行
文字列)";

//以下の2つは同じ
message "\"C:\\Program Files (x86)\"";
message R"xxx("C:\Program Files (x86)")xxx";



「@"」から始まる文字列

 「@"」で始まる書き方で、文字列を「"」以外のエスケープなしで書くことができます。(V8.66以降)

 「@"」から「"」までが文字列として解釈されますが、途中に「""」がある場合は1つの「"」として解釈します。
 「\」はそのまま「\」と書くことができます。
 「"」はそのまま「""」と書く必要があります。
 改行はそのまま改行として複数行で書くことができます。

//以下の2つは同じ
message "文字列";
message @"文字列";

//以下の2つは同じ
message "複数行\n文字列";
message @"複数行
文字列";

//以下の2つは同じ
message "\"C:\\Program Files (x86)\"";
message @"""C:\Program Files (x86)""";



標準のカラー表示ではR"()"や@""の文法に対応していません。
[その他]→[ファイルタイプ別の設定]→[デザイン]→[複数行コメント]で「ユーザー定義」で定義して色付けすることが可能です。
開始文字列「/*」
終了文字列「*/」
表示方法「コメント」
種類「複数行」

開始文字列「//」
表示方法「コメント」
種類「単一行(行末まで)」

開始文字列「R"(.*?)\(」で正規表現をON
終了文字列「\)\1"」で正規表現をON
表示方法「文字列」
種類「複数行」
「開始文字列のタグを終了文字列でも使う」をON

開始文字列「@"("")*"(?!")」で正規表現をON
表示方法「文字列」
種類「単一の文字列」

開始文字列「@"」で正規表現をON
終了文字列「(?<!")("")*"(?!")」で正規表現をON
表示方法「文字列」
種類「複数行」

開始文字列「"」
終了文字列「"」
エスケープ文字「\」
表示方法「文字列」
種類「複数行」


hilightファイルの例
/<HilightMulti>
/0003,00000002,00,00,00000002,"/*",00000002,"*/"
/0003,00000003,00,00,00000002,"//",00000003,"(?<!(\\?\\?/|\\\\))$"
/0014,00000002,00,00,00010003,"R\"(.*?)\\(",0001000B,"\\)\\1\""
/0014,00000004,00,00,00010003,"@\"(\"\")*\"(?!\")",00000002,""
/0014,00000002,00,00,00010003,"@\"",00010003,"(?<!\")(\"\")*\"(?!\")"
/0014,00000002,00,5C,00000002,"\"",00000002,"\""