Google DriveにEAを格納したら音声ファイルとして認識された???
MT5対応をしていないため、MT4をBuild610にupdateして、ただでさえ混乱している時に奇妙な現象発生w。
Google DriveにEAを格納したら音声ファイルとして認識された!
Google DriveにEA保存したら音声ファイルとして認識されたw。updateしたMT4だとファイル構造変わってGoogle Driveに変な認識されるのかと疑って適当にEA作ってみたけど、そうじゃないようで、これだけ。 pic.twitter.com/5q2Fb5iBUi
— graySpace (@graySpace999) 2014, 3月 22
@graySpace999 いろいろやってみた。なんだろうw。作成したプログラムの中身に依存しているようだけど、Google Driveは何を見て、音声ファイルと普通のファイルを区別しているのだろう。 pic.twitter.com/lZ6TYWCJU1
— graySpace (@graySpace999) 2014, 3月 22
幾つか実験。
①問題となるEAを、MetaEditorから新規作成したEAにコピペしてGoogle Driveにアップロードする(test1.mq4)
音声ファイルとして認識される
②MetaEditorから新規作成したEAをそのままGoogle Driveにアップロードする(testTemplate.mq4)
通常ファイルとして認識される。
③②と同様にMetaEditorから作成したファイルに、問題となるEAをコピーしてGoogle Driveにアップロードする(testCopy.mq4)
音声ファイルとして認識される。
④以前作成したサンプル用のEAをGoogle Driveにアップロードする(Print.mq4)
→通常ファイルとして認識される。
⑤④でアップロードしたファイルの中身を音声ファイルとして認識されるファイルに置き換えてアップロードする(Print.mq4)。
→音声ファイルとして認識される。
この時点で、当然なんだけど、ファイルの中身(ソースコード)によって、音声ファイルとして認識されるか、通常ファイルとして認識されるかは間違いなさそう。
引き続き調べた。しかし、プログラム1行ずつ削除しながらどこのソースが問題かを調べたが原因わからず。
動作に問題はないようなので、諦めた。
(追記)
・WinMergeで比較したら同じと判定されたが、バイナリエディタで中身を見ると、明らかに異なる。文字コードが違う。そういえば、MT4はShift-JISだったけど、MT5はUnicodeだった。MT4のBuild610はUnicodeのようだ。これが関係するのかな。
ファイルサイズが異なるけど、ファイルの中身は同じというWinMergeによる判定。
バイナリエディタで比較したら中身違う。