MQL4で使用可能な最大文字数

プログラマにとって、使用しているプログラミング言語にどんな制約があるのかを知るのは、重要なことです。
意外なところに意外な制約があると、自作中のプログラムがおかしな挙動を示したりするので要注意なのです。


制約の分かりやすい話として、文字列変数関係を少し調べてみました。
まず、連続して定義可能な文字数ですが、これはヘルプに書かれている通り255文字までです。

string msg = "1234567890...";//255文字まで定義可能

255文字を超えた場合でも、コンパイルは可能ですが、文字列が途中で切れてしまいます。
もっと長い文字列を定義したい場合は、分割すればOKです。

string msg = "1234567890..."+"1234567890...";


次は、一行で Print できる文字数ですが、Expertsタブのメッセージに表示可能な文字数は約500文字以下で、ログファイルに記録可能な文字数は、4095文字です。Expertsタブ内では途中までしか無くても、ログファイル内には記載されています。ちなみに、4095文字を超えて Print すると、挙動不審になります。

これらの制限が困る人は、文字列を分割して、複数回に分けて Print する必要があります。


(…実際に困る人は居ないと思いますが、、本当に困った時は、Print する内容を見直した方がいいと思います...笑)



最後に、一度に Comment できる文字数ですが、こちらには制限を見つけられていません。試しに21680文字を適宜改行して msg に放り込んでコメントさせてみましたが、画面内に正常に表示されます。

21680という数字に意味は無く、上図のように画面内がほとんど埋まってしまったので中断しただけです。これだけ調べておけば、 Comment は文字制限を気にせずに使えそうだとみなす事ができます。