ファイルを操作する - ページ 6

 
Yedelkin:

長い間、ファイル操作をしていなかったので......。ほら、FileOpen()を使うと、CSV形式のファイルが宣言 されているでしょ。以前は、書き込まれた項目はすべてユニコードまたはアンシ文字列に変換されるように指定されていました。も しかして、ここが犬の居場所?

糞ウィニペッ!!!

そこに「埋没」しているのです :)FILE_ANSI パラメータを追加したら、すべてがスムーズにいきましたよ。

FileOpen("価格表" +_Symbol+tpl_ext,FILE_READ|FILE_CSV|FILE_ANSI,';',CP_ACP);


Yedelkin さんTheXpert さん 情報 ありがとうございます!!!!:)

 

is_vale: 

...

デバッガで見たところ(sTF変数では、ファイルの内容をunicodeとして読んでいます!)。ファイルを開く ときに、可能な限りのコードページを試しましたが、結果は同じです :( ファイル自体はWindowsのエンコーディングで書かれています。

どなたか、問題の所在をご存知の方はいらっしゃいますか?

デフォルトでは、UNICODEで 書かれています。そこで、FILE_ANSI フラグを設定します。

int handle=FileOpen("Price Label\\"+_Symbol+tpl_ext,FILE_READ|FILE_CSV|FILE_ANSI,';',CP_ACP);

 
tol64:

デフォルトでは、UNICODEで 書かれています。したがって、FILE_ANSI フラグを設定します。

プロンプトが表示されます。)))
 
uint  FileReadArray(
   int   file_handle,               // handle файла
   void  array[],                   // массив для записи
   int   start_item=0,              // с какой позиции массива писать
   int   items_count=WHOLE_ARRAY    // сколько читать
   );
array[]のサイズについての質問:FileReadArray()で使用する前にarray[]のサイズを 設定すべきでしょうか、それとも この場合は「端末ランタイム」が 対処してくれるのでしょうか?
 
Yedelkin:
array[]のサイズについての質問:FileReadArray()で使用する前にarray[]のサイズを設定すべきでしょうか、それとも「端末実行システム」が 対処してくれるのでしょうか?

いいえ、この機能は、ファイル内の必要なデータ量に対してメモリを分配します。

ちなみに、単純な構造 体の配列も、そこに書かれていれば、同じように読むことができます。

FileReadArray() 関数は保存されたデータの種類を認識しないので注意が必要です。これは特徴の一つで、重複して保存してコロケーションとして読み、ビットにパース することが可能です。

 

かっこいい。

Urain:

FileReadArray() 関数は保存されたデータの型を認識しないので、注意が必要です。これは特徴の一つで、重複して保存して浮動小数点として読み、ビットにパース することが可能です。

つまり、保存時と読み込み時の配列は同じ型であるべきということですね?これでいいのか?

 
Yedelkin:

かっこいい。

つまり、保存時と読み込み時の配列は同じ型でなければならない、ということでよろしいでしょうか?それでいいのか?

はい。
 
Urain:
はい。
ありがとうございました。
 
bool  FileCopy(
    string  src_filename,       // имя файла-источника
    int     common_flag,        // место действия
    string  dst_filename,       // имя файла назначения
    int     mode_flags          // способ доступа
    );

説明にはこう書いてある。

common_flag

[in] ファイルの場所を定義するフラグ。common_flag=FILE_COMMONの場合、全クライアント端末の共有フォルダにファイルが存在する。それ以外の場合は、ローカルフォルダーにあります。

ソースファイルが共有フォルダにある場合、common_flag=FILE_COMMON、これは理解できる。しかし、ファイルがローカル・フォルダにある場合、どのフラグを指定すればよいのでしょうか。common_flagパラメータはデフォルトではないので、いずれにせよ何らかの値を指定する必要がある。
 
Yedelkin:

説明にはこう書いてある。

ソースファイルが共有フォルダにある場合は、common_flag=FILE_COMMONで、クリアです。しかし、ファイルがローカル・フォルダにある場合、どのフラグを指定すればよいのでしょうか。common_flagパラメータはデフォルトではないので、いずれにせよ何らかの値を指定する必要があります。
FILE_COMMON指定しない場合、デフォルトはローカルフォルダ内と なる。
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов - Документация по MQL5