エラー、バグ、質問 - ページ 727

 
Renat:

FileReadArrayについて質問があり、その説明の中で、間違ったデータ型を読み取る 機能があることを指摘しました。

そこで、「この機能は言語セキュリティにどのように 適合するのだろうか?

それでいいのなら、ビットフィールドを正しい型に変換する標準的な関数を作ればいいのでは?

一般的には、物事を整理してこの機能を削除するか、長い演算を実装させるかのどちらかです。

ここでは、ワイプファイルを通じて、この機能の一例を紹介します。

double arr[]; ulong arr1[]; 
//+------------------------------------------------------------------+
void OnStart()
  {   
   ArrayResize(arr,1); arr[0]=123.2564;
   WriteArrayFile();
   ReadArrayFile();
   Print(arr1[0]);
  }
//+------------------------------------------------------------------+
void WriteArrayFile(string folder="Calculator")
  {
   int han=FileOpen(folder+".dat",FILE_WRITE|FILE_BIN);
   if(han!=INVALID_HANDLE)
     {      
      FileWriteArray(han,arr);              
      FileClose(han);
     }
  }
//+------------------------------------------------------------------+
void ReadArrayFile(string folder="Calculator")
  {
   int han=FileOpen(folder+".dat",FILE_READ|FILE_BIN);
   if(han!=INVALID_HANDLE)
     {      
      FileReadArray(han,arr1);             
      FileClose(han);
     }
  }
//+------------------------------------------------------------------+
 
パラノイアを検知。
 
TheXpert:
パラノイアを検知。

よく考えたほうがいい。

本当は安全だと判断して、ファイルを使わずに直接、対応するものを作ることに賛成なんですけどね。

しかし、もしMQがそれを安全でないと認識するならば、その関数からも削除されるべきです。

ZZZY ところで、多分私は本当に今日何か間違って lug、私は2つの質問に答えていない、あなたは私を啓発し、どこに愚かな指を指しています。

 
Urain:

ここでは、ネジを拭いた状態でファイル経由で修正した例をご紹介します。


なぜファイルを介するのか?もっと簡単なことです。単純構造体のデータ型変換について 読む
 
とか、こんな感じで
 
Renat:
クロスでのテストでは、利益と必要な証拠金を正しく変換するための正確なモデリングやその他のレートがあります。
ビジュアライゼーションを実行してみると、マーケットウォッチの背景文字の数に応じた計算量がすぐに理解できるはずです。
全て理解できるのですが、13.7倍の速度差は・・・。まあ、2倍はいいんですけどね。そして、メジャーで速度を試す初値の 子犬のような喜びは、クロスでの涙ぐましい落胆に取って代わられた。そして、30人のネイティブのリモートエージェントを使う代わりに、またしてもクルーデスに賄賂を渡すことになる...。アビス!
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
 
Urain:

思考を展開する。

本当は安全だと判断して、ファイルを使わずに直接、対応するものを作ることに賛成なんですけどね。

しかし、MQが安全でないと認識した場合は、その関数からも削除する必要があります。

ZZZY ところで、たぶん私は今日、本当に何か正しくないことをしゃべっている、私は2つの質問に答えていない、あなたは本当に私を啓発し、どこのダム指を指す。

ファイルそのものは無個性です。このファイルがどのように書かれたかは、事前に知ることができません。つまり、上記のような機能を禁止することはできないのです。もちろん、純粋なテキストファイルを有機的に検出することはできますし、UnicodeやAnsiエンコーディングの問題もあります。

だから、どんなファイルでも自由に読むことができる。また、読み出し(書き込みも含む)のサイズが制御されているので、危険な状況になることはありません。スタックを崩すことはできないでしょう。どう考えてもプロセスメモリにアドレスが入ることはないでしょう。

 
muallch:
それはわかるのですが、13.7倍の速度差は......。まあ、2倍はいいんですけどね。そして、メジャーの初値で スピードを試した子犬のような喜びは、クロスの涙ぐましいほどの落胆に取って代わられた。そして、30人のネイティブのリモートエージェントを使う代わりに、またしてもクルーデスに賄賂を渡すことになる...。アビス!
この問題については、調査中です。クロスでの始値テストが加速される。
 
stringo:

ファイル自体は無個性なファイルです。このファイルがどのように記録されたかは、事前に知ることができない。つまり、上記のような機能を禁止することはできないのです。もちろん、純粋なテキストファイルを有機的に検出することは可能ですし、UnicodeやAnsiのエンコーディングではニュアンスが異なります。

だから、どんなファイルでも自由に読むことができる。また、読み出し(書き込みも含む)のサイズが制御されているので、危険な状況になることはありません。スタックを崩すことはできないでしょう。どのような方法でもプロセスメモリにアドレスを取得することはできません。

それなら、型変換を しない直読機能を導入しない理由はないだろう、例えば

double a=123.2564; ulong b;

b=Byte(a,TYPE_ULONG);
Print(b);
//--- результат 4638373815016729713

関数に入れれば、すべてが安全になる。

 
Urain:

それなら、型変換を せずに直接データを読み取る機能を導入しない手はないだろう。

関数に入れれば、すべてが安全になる。

struct __double { double v; }.

struct __long { long v; }.

__double a; __long b;

a.v=123.456;

b=aです。

b.v=4638373815016729713;

難しくない

+トップリンク以外に読むhttps://www.mql5.com/ru/articles/364


また、ある型から別の型への変換は、マクロや関数を用いて行うことができる。

が、特に複雑なことはありません。

Избавляемся от балласта самодельных DLL
Избавляемся от балласта самодельных DLL
  • 2012.01.31
  • o_O
  • www.mql5.com
Если MQL5-программисту недостаточно функционала языка, он вынужден обращаться к дополнительным инструментам. Для этого приходится использовать другой язык программирования и создавать промежуточную DLL. В MQL5 имеется механизм представления разных типов данных с помощью структур и передачи их в API, но к сожалению, MQL5 не отвечает нам на вопрос о том, как вытянуть данные из принятого указателя. В данной статье мы поставим точку в этом вопросе и покажем простые механизмы обмена сложными типами данных и работе с ними.