Arbeiten mit Dateien. - Seite 6

 
Yedelkin:

Ich habe schon lange nicht mehr mit Dateioperationen gearbeitet... Sehen Sie, wenn Sie FileOpen() verwenden, haben Sie eine Datei vom Typ CSV deklariert. Damit wurde festgelegt, dass alle geschriebenen Elemente in Unicode oder Ansi-Strings umgewandelt werden. Vielleicht ist der Hund hier?

Scheiß Winnipuh!!!

Dort ist es "begraben" :) Ich fügte den Parameter FILE_ANSI hinzu und alles verlief reibungslos!

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


Yedelkin ,TheXpert danke für den Tipp!!!:)

 

is_vale: 

...

Was ich im Debugger sehen kann (in der sTF-Variable wird der Dateiinhalt als Unicode gelesen! Beim Öffnen der Datei habe ich alle möglichen Codepages ausprobiert, aber das Ergebnis ist das gleiche :( Die Datei selbst ist in Windows-Kodierung geschrieben.

Hat jemand eine Idee, wo das Problem liegt?

Standardmäßig ist es in UNICODE geschrieben. Setzen Sie also dasFILE_ANSI-Flag:

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

 
tol64:

Standardmäßig ist sie in UNICODE geschrieben. Setzen Sie daher dasFILE_ANSI-Flag:

Unverzüglich nachgefragt. )))
 
uint  FileReadArray(
   int   file_handle,               // handle файла
   void  array[],                   // массив для записи
   int   start_item=0,              // с какой позиции массива писать
   int   items_count=WHOLE_ARRAY    // сколько читать
   );
Frage über array[] Größe: sollte ich die Größe von array[] setzen, bevor Sie es inFileReadArray() verwendenoder wird die "Terminal-Laufzeit" kümmern sich um seine Größe in diesem Fall?
 
Yedelkin:
Frage zur Größe von array[]: sollte ich die Größe von array[] vor der Verwendung inFileReadArray() festlegenoder kümmert sich das "Terminal Executing System" darum?

Nein, die Funktion verteilt den Speicher für die erforderliche Datenmenge in der Datei.

Übrigens können Sie Arrays einfacher Strukturen auf die gleiche Weise lesen, wenn sie dort geschrieben wurden.

Die Funktion FileReadArray() erkennt den Typ der gespeicherten Daten nicht, also Vorsicht, das ist eines der Features, man kann Duplikate speichern und sie als Kollokation lesen und in Bits parsen.

 

Cool.

Urain:

Die Funktion FileReadArray() erkennt den Typ der gespeicherten Daten nicht, also Vorsicht, das ist eine der Funktionen, man kann Duplikate speichern und sie als Fließkomma lesen und in Bits parsen.

Arrays sollten also beim Speichern und Lesen vom gleichen Typ sein, richtig? Ist das genug?

 
Yedelkin:

Cool.

Die Arrays müssen also beim Speichern und Lesen vom gleichen Typ sein, habe ich recht? Ist das genug?

Ja.
 
Urain:
Ja.
Gracias muchas!
 
bool  FileCopy(
    string  src_filename,       // имя файла-источника
    int     common_flag,        // место действия
    string  dst_filename,       // имя файла назначения
    int     mode_flags          // способ доступа
    );

In der Beschreibung steht:

common_flag

[in] Kennzeichen, das den Speicherort der Datei angibt. Wenn common_flag=FILE_COMMON, befindet sich die Datei im gemeinsamen Ordner aller Client-Terminals. Andernfalls befindet sich die Datei im lokalen Ordner.

Befindet sich die Quelldatei im gemeinsamen Ordner, dann ist common_flag=FILE_COMMON, das ist verständlich. Wenn sich die Datei jedoch in einem lokalen Ordner befindet, welches Flag muss dann angegeben werden? Der Parameter common_flag ist nicht voreingestellt, d.h. es muss trotzdem ein Wert angegeben werden.
 
Yedelkin:

In der Beschreibung steht:

Befindet sich die Quelldatei in einem gemeinsamen Ordner, dann ist common_flag=FILE_COMMON, das ist klar. Wenn sich die Datei jedoch in einem lokalen Ordner befindet, welches Flag muss dann angegeben werden? Der Parameter common_flag ist nicht voreingestellt, so dass trotzdem ein Wert angegeben werden muss.
Wenn FILE_COMMON nicht angegeben wird, liegt der Standardordner im lokalen Verzeichnis.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов - Документация по MQL5