やたらと長い英単語ですね。Escape Sequence。
これがなんなのか、簡単に説明していきます。
mes "mes 命令は \"文字列\" を表示する命令である。" mes "○か×か、手を挙げつつ答えよ。" stop
まず、これを実行してみてください。
…………。
どうですか、入力したのは
"mes 命令は \"文字列\" を表示する命令である。"
なのに、表示されたのは
mes 命令は "文字列" を表示する命令である。
でした。
どうして \" が " に変わっているのでしょうか!?
これこそが、「エスケープシーケンス (EscapeSequence)」なのです!
このやたら長い英単語は、スクリプトに文字列を書く時の特殊ルールのことです!
具体的に言うと、特殊な文字を、別の形で入力するためのルールです。
基本的に、\ とアルファベット1文字を使って表します。
文字 | 表されるもの |
---|---|
\n | 改行を表します。New Line の略。CRLF。 |
\r | 改行を表します。Carriage Return の略。CR。 |
\t | タブスペースを表します。 |
\" | ダブルクォーテーション(")を表します。 |
\' | シングルクォーテーション(')を表します。 |
\\ | 円記号 \ を表します。 |
\X | 小文字の X ( X := 他の半角英文字 ) |
HSPでは、これだけ使用できます。
前 2つの違い ( CRLF と CR ) は、複雑なので、気にしない方がいいです。通常は \r ではなく \n を使ってください。
" は、文字列を括るという特殊な効果を持っているので、文字列の中で " を使うことができません。
mes "x = "文字列""などとすると、謎のスクリプトになってしまうわけです。
このルールは必ず適用されます。
"C:\MyDocuments" と書いて、困ることがよくあるので、気をつけてください。
path = "C:\MyDocuments" mes path // 思ったのと違う!
それと、エスケープシーケンスが適用されるのはスクリプトの文字列、しかも " でくくられているものの中だけです。
普通の文章で \n とか書いても、改行にはならないので注意してください。何を当たり前のことを、と思われるかもしれませんが、勘違いしている人がたまにいるので。
HSP3.0 〜 HSP3.2 についている標準のスクリプトエディタでは、"\\" や "\"" で終わる文字列の場合、それ以降も文字列だと判断され、一行丸ごと文字列の色になるバグがあります。
このような色分けは、動作には一切影響がありませんので、安心してください。