//+------------------------------------------------------------------+
//| TestFileRead.mq5 |
//| Copyright 2026, MetaQuotes Ltd. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2026, MetaQuotes Ltd."
#property link "https://www.mql5.com"
#property version "1.00"
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
uint written,read;
//--- 13 variables de types différents
bool bool_value=true;
char char_value=123;
short short_value=12345;
int int_value=1234567;
long long_value=5000000000;
float float_value=FLT_EPSILON;
double double_value=M_PI;
color color1_value=clrAquamarine;
color color2_value=C'111,0,222';
datetime datetime_value=TimeCurrent();
complex complex_value=1.1+0.1i;
complexf complexf_value=5.5+0.5i;
string string_value="the quick brown fox jumps over the lazy dog";
//--- ouvrir un fichier CSV en écriture
int file_handle=FileOpen("test.csv",FILE_CSV|FILE_WRITE|FILE_ANSI);
//--- écrire 13 variables de types différents
written=FileWrite(file_handle,bool_value,char_value,short_value,int_value,long_value,float_value,double_value,color1_value,color2_value,datetime_value,string_value,complex_value,complexf_value);
bool_value=false;
char_value=124;
short_value=12347;
int_value=1234569;
long_value=5001000000;
//--- écrire 13 variables dans la deuxième ligne du fichier CSV
written+=FileWrite(file_handle,bool_value,char_value,short_value,int_value,long_value,float_value,double_value,color1_value,color2_value,datetime_value,string_value,complex_value,complexf_value);
bool_value=false;
char_value=125;
short_value=12349;
int_value=1234571;
long_value=5002000000;
//--- écrire 13 variables dans la troisième ligne du fichier CSV
written+=FileWrite(file_handle,bool_value,char_value,short_value,int_value,long_value,float_value,double_value,color1_value,color2_value,datetime_value,string_value,complex_value,complexf_value);
FileClose(file_handle);
Print(written," bytes written");
bool bool_value2;
char char_value2;
short short_value2;
int int_value2;
long long_value2;
float float_value2;
double double_value2;
color color1_value2;
color color2_value2;
datetime datetime_value2;
complex complex_value2;
complexf complexf_value2;
string string_value2;
string string2_value="untouched string";
//--- ouvrir le fichier CSV écrit en lecture
file_handle=FileOpen("test.csv",FILE_CSV|FILE_READ|FILE_ANSI);
//--- essayer de lire 1 variable de plus qu'il n'y en a dans la ligne
read=FileRead(file_handle,bool_value2,char_value2,short_value2,int_value2,long_value2,float_value2,double_value2,color1_value2,color2_value2,datetime_value2,string_value2,complex_value2,complexf_value2,string2_value);
FileClose(file_handle);
Print("read ",read," variables");
Print(bool_value2," ",char_value2," ",short_value2," ",int_value2," ",long_value2," ",float_value2," ",double_value2," ",color1_value2," ",color2_value2," ",datetime_value2," ",string_value2," ",complex_value2," ",complexf_value2," ",string2_value);
string txt_line1,txt_line2,txt_line3;
//--- ouvrir le fichier écrit comme fichier texte
file_handle=FileOpen("test.csv",FILE_TXT|FILE_READ|FILE_ANSI);
//--- lire 3 lignes depuis le fichier texte
read=FileRead(file_handle,txt_line1,txt_line2,txt_line3);
Print("\nread ",read," lines");
FileClose(file_handle);
//--- vérifier visuellement qu'il s'agit bien des lignes écrites
Print(txt_line1);
Print(txt_line2);
Print(txt_line3);
//--- ouvrir un fichier binaire en écriture
file_handle=FileOpen("test.bin",FILE_BIN|FILE_WRITE);
//--- écrire 12 variables de types différents, sauf string
written=FileWrite(file_handle,bool_value,char_value,short_value,int_value,long_value,float_value,double_value,color1_value,color2_value,datetime_value,complex_value,complexf_value);
FileClose(file_handle);
Print("");
Print(written," bytes written");
bool bool_value3;
char char_value3;
short short_value3;
int int_value3;
long long_value3;
float float_value3;
double double_value3;
color color1_value3;
color color3_value3;
datetime datetime_value3;
complex complex_value3;
complexf complexf_value3;
//--- ouvrir le fichier binaire écrit en lecture
file_handle=FileOpen("test.bin",FILE_BIN|FILE_READ);
//--- lire 12 variables des mêmes types
read=FileRead(file_handle,bool_value3,char_value3,short_value3,int_value3,long_value3,float_value3,double_value3,color1_value3,color3_value3,datetime_value3,complex_value3,complexf_value3);
FileClose(file_handle);
Print("read ",read," variables");
//--- vérifier visuellement que les données ont été lues correctement
Print(bool_value3," ",char_value3," ",short_value3," ",int_value3," ",long_value3," ",float_value3," ",double_value3," ",color1_value3," ",color3_value3," ",datetime_value3," ",complex_value3," ",complexf_value3);
}
|