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

 

lazarev-d-m:

イェデルキン

sergeev:ファイルには行が ありますか?

FILE_LINE_END

行末 表示を取得する

ターミナルはcsvファイルを表としてではなく、すべての変数が並べられ、デリミターで区切られた通常のファイルとして見て、表のようにその中で方向付けるために、私はcsvを表のように扱う小さなサンプルスクリプトを書いた、それが奇妙に聞こえるかもしれないが、今日/明日私はCodeBaseに投げます、私は多くが興味深いだろうと思う。

lazarev-d-mさん、 私の メッセージは、あなたへのものではありません。セルゲイエフ個人のためです。
 
Yedelkin:

FILE_LINE_END

終端インジケータの 取得

何も言わないよ、君はもう賢いんだから。

で、そのファイルのライン マッピングに制御文字が あることを理解し、その内容の一部のビューアが一般に認められたルールに従ってそれを表示するようにします。

Управляющие символы — Википедия
  • ru.wikipedia.org
Управля́ющие си́мволы — элементы данной кодировки, которым не приписано графическое представление, но которые используются для управления устройствами, организации передачи данных и других целей. Сейчас для этих целей применяются форматы файлов, языки управления устройствами (такие как Postscript) и сетевые протоколы. Поэтому многие...
 
lazarev-d-m:

ターミナルはcsvファイルをテーブルとしてではなく、すべての変数がセパレータで区切られ並べられた通常のファイルとして見ることができます。

csvだけでなく、すべてをファイルとして見ているのです。
 

lazarev-d-m:

文字列を検索する仕組みを考えなければならない。

ファイルには行がありますか?新しい行を マークする方法は?(特殊記号を示唆するもの)

ファイルが文字の一次元配列であると想像してください。

配列の中の「改行」をどのように見つけるか?

 

 

FILE_LINE_END

行末 文字取得

sergeev: 私は何も言いません。あなたは十分に賢いので、ファイルがその線形表現に制御文字を 持つことを理解しているはずです。
:)"ファイルの改行とは何か?ファイルに行は あるか?"という質問に対する答えを得たとしましょう。やったね。その答えは、あなたには期待できないものでした。
 
Yedelkin:
:)という質問に対する答えを、「ファイルの改行」と仮定して考えてみましょう。やったね 答えは出ないはずだ。

というのは、使用するコンセプトとそのコンセプトに対する認識が重要だからです。

ファイルの「改行」とは何ですか? これは、私がlazarev-d-mから 調べようとしていることです。答えを待っていれば、必要に応じて、概念を正しく訂正し、説明します。そして、問題の解決に導く。

そして、lazarev-d-mが"改行 "について質問するとき、何を想像しているのかわかりません。 そして、それをどのように見つけるのか、答えを出すことができません。彼はFileSeekとFileIsLineEndingとFileReadを知っています。しかし、それが何のためにあるのかは知らないようだ。

彼の場合、検索によってのみある文字を見つけることができるのは確かだが、新しい文字列が単なる文字であることを理解しているかどうかはわからない。

 
sergeevвсе дело в 私はlazarev-d-mから、ファイル中の「新しい文字列」とは何かを調べようとしています。 もし答えが期待できるなら、私は訂正してその概念を正しく説明します。一方、lazarev-d-m 氏が「改行」について質問するとき、何を考えているのかわかりません。彼はFileSeekとFileIsLineEndingとFileReadを知っています。彼の場合、検索しないと出てこないキャラクターがあることは確かです。

ポイントは、このフォーラムがMQL5 コミュニティのためのフォーラムであるということです。そして、MQL5では「ファイル内の行末記号」という概念を暗示しています。

FILE_LINE_END。

行末 フラグの取得

ですから、ラザレフさんのご質問はまったくもって正しいのです。MQL5の コミュニティーの中では、絶対に正しいことです

 
Yedelkin:

ポイントは、このフォーラムがMQL5 コミュニティのためのフォーラムであるということです。そして、MQL5言語には「ファイル内の行末記号」という概念があります。

質問 - 2で割る数字を教えてください。

答えはすべてです。

モラル - 終了とあなたが必要とするものを混同しないでくださいlazarev - D - M

 
sergeev: 質問 - 教えてください、2で割り切れる数は何ですか?答えはすべてです。 モラル -正しい lazarev-d-mとエンドを混同しないで ください。
そう、"ファイルに文字列はあるのか?"という疑問に対する答えです。もう手に入れたんですね。今、あなたは終わりとラザレフに必要なものを比較しているのです。:)
 
sergeev:

質問 - 2で割り切れる数を教えてください。

答えはすべてです。

モラル - 終了とあなたが必要とするものを混同しないでくださいlazarev - D - M

1行を識別する方法があることは理解していますが、それにアクセスするための個別のコマンドはありません。正しい文字列にたどり着くには、行の区切り文字の文字数を再計算する必要があります(行の「数」がわかっている場合)。

また、ファイルを一行ずつスキャンする方法もありますが、これもあまり便利ではなく、特に大きなファイルでは何百行もある場合があり、テスターで突然これに遭遇すると、一般的にひどいことになります。

こんな感じです。うまく動作しないので、暇なときにでも直します。

MqlDateTime mqldt;
string qwerty="EURUSD";
int filehandle;

void OnStart()
  {
   filehandle=FileOpen("News.csv",FILE_READ|FILE_CSV|FILE_ANSI,';');
   uint column1=FileReadInteger(filehandle);//Code
   string column2=FileReadString(filehandle);//Symbol
   uint column3=FileReadInteger(filehandle);//Year
   uint column4=FileReadInteger(filehandle);//Month
   uint column5=FileReadInteger(filehandle);//Day
   uint column6=FileReadInteger(filehandle);//Hour
   uint column7=FileReadInteger(filehandle);//Minute
   while(column2!=qwerty&&column3!=mqldt.year&&column4!=mqldt.mon&&column5!=mqldt.day&&column6!=mqldt.hour)
     {
   column1=FileReadString(filehandle);//Code
   column2=FileReadString(filehandle);//Symbol
   column3=FileReadInteger(filehandle);//Year
   column4=FileReadInteger(filehandle);//Month
   column5=FileReadInteger(filehandle);//Day
   column6=FileReadInteger(filehandle);//Hour
   column7=FileReadInteger(filehandle);//Minute
     }
   Alert("Искомое находится в ",column1,"-й строчке");
  }
現在時刻と 一致する行の番号を返すべきなのに、常にcolumn1=Codeを返しているのは、このコードから明らかだと思います。