【開発の裏側53】設定ファイルの REP を置き換えたら、Report の行まで書き換わった。PowerShellの置き換えは大文字と小文字を区別しません

【開発の裏側53】設定ファイルの REP を置き換えたら、Report の行まで書き換わった。PowerShellの置き換えは大文字と小文字を区別しません

記事
IT・テクノロジー
どうも、FXトレーダー兼システムエンジニアのナオトです。

開発の裏側の52回目は、MT4のテスターの設定ファイルで、通貨ペアの入力が0になった話でした。
今回も設定ファイルの話で、作るほうの道具でつまずいた話です。



MT5のテスターを何度も回すとき、設定ファイルを毎回手で書くことはしません。
ひな形を1つ用意しておき、変わるところだけを置き換えて、回すごとに作ります。

ゴトー日に動くEAを、設定を変えながら何度も回していたときのことです。
ひな形には、回すごとに変わる名前を入れる場所に、REP という目印を置いていました。
これを、Windows の PowerShell の置き換えで、回すごとの名前に書き換えます。



ところが、目印のところだけでなく、ほかの行まで書き換わっていました。

MT5のテスターの設定には、報告書の名前を書く Report という行と、同じ名前の報告書を上書きするかを書く ReplaceReport という行があります。
その行の名前の中の Rep の部分まで、置き換えられていたのです。



原因は、PowerShell の置き換えが、ふだんは大文字と小文字を区別しないことでした。
REP と書いても、Rep も rep も同じものとして見つけます。

設定ファイルには、英語の行の名前がたくさん並びます。短い目印は、その中のどこかに紛れ込みやすい。

直し方は、ほかの場所に絶対に出てこない目印にすることです。
REP をやめて、前後に下線を2つずつ付けた __REP__ にしました。

大文字と小文字を区別する置き換えの書き方もありますが、目印のほうを変えておけば、どちらの書き方でも安全です。



同じ日に、もう1つありました。

2つの環境で、テスターを同時に起動すると、片方が authorization failed と出て回らないことがありました。
時間をずらして回し直すと、通りました。

開発の裏側の49回目の、先頭の見えない3バイト。52回目の、数字の入力にだけ付ける4行。そして今回の目印。
テスターを自動で回すと、設定ファイルの小さな書き違いが、そのまま結果に出ます。設定ファイルを作る道具ほど、出来上がったファイルを読んで確かめる必要があります。

MT4とMT5のテスターを自動で回すプログラムの開発も、ご依頼をお受けしています。


最後までお読みいただき、ありがとうございました。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す