этот скрипт пытается записать в файл массив FileWriteArray() а потом прочитать его с помощью FileReadArray() вобщем записывается файл нормально а считывается неправильно это видно в логах которые выводит скрипт, после считывания из бинарного файла получаем не массив а какую то хрень :) кто знает как правильно считывать массивы из бинарного файла подскажите плиз, очень нехочется dll для этого писать
код скрипта:
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
//----
string MyArray[5][3];
for(int i=0;i<5;i++){
for(int j=0;j<3;j++){
MyArray[i][j]="Строка № "+i+" Колонка № "+j;
}
}
Print("Содержимое массива до записи в файл");
for(int a=0;a<5;a++){
for(int b=0;b<3;b++){
Print(MyArray[a][b]);
}
}
int handle=FileOpen("mydata.dat", FILE_BIN|FILE_WRITE);
if(handle>0)
{
FileWriteArray(handle, MyArray, 0,15);
FileClose(handle);
}
int handle1;
double varray[5][3];
handle1=FileOpen("mydata.dat", FILE_BIN|FILE_READ);
if(handle1>0)
{
FileReadArray(handle1, varray,0,15);
FileClose(handle1);
}
Print("Содержимое массива загруженного из файла");
for(int k=0;k<5;k++){
for(int l=0;l<3;l++){
Print(varray[k][l]);
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
а вот что он выводит в логи:
до записи в бинарник из массива все корректно считывается и выводится в Print() а после записи в файл и чтения оттуда выводится всякая хрень:
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
код скрипта:
//+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { //---- string MyArray[5][3]; for(int i=0;i<5;i++){ for(int j=0;j<3;j++){ MyArray[i][j]="Строка № "+i+" Колонка № "+j; } } Print("Содержимое массива до записи в файл"); for(int a=0;a<5;a++){ for(int b=0;b<3;b++){ Print(MyArray[a][b]); } } int handle=FileOpen("mydata.dat", FILE_BIN|FILE_WRITE); if(handle>0) { FileWriteArray(handle, MyArray, 0,15); FileClose(handle); } int handle1; double varray[5][3]; handle1=FileOpen("mydata.dat", FILE_BIN|FILE_READ); if(handle1>0) { FileReadArray(handle1, varray,0,15); FileClose(handle1); } Print("Содержимое массива загруженного из файла"); for(int k=0;k<5;k++){ for(int l=0;l<3;l++){ Print(varray[k][l]); } } //---- return(0); } //+------------------------------------------------------------------+а вот что он выводит в логи:
до записи в бинарник из массива все корректно считывается и выводится в Print() а после записи в файл и чтения оттуда выводится всякая хрень:
11:43:09 RW_Array2 GBPUSD,H1: loaded successfully
11:43:09 RW_Array2 GBPUSD,H1: Содержимое массива до записи в файл
11:43:09 RW_Array2 GBPUSD,H1: Строка № 0 Колонка № 0
11:43:09 RW_Array2 GBPUSD,H1: Строка № 0 Колонка № 1
11:43:09 RW_Array2 GBPUSD,H1: Строка № 0 Колонка № 2
11:43:09 RW_Array2 GBPUSD,H1: Строка № 1 Колонка № 0
11:43:09 RW_Array2 GBPUSD,H1: Строка № 1 Колонка № 1
11:43:09 RW_Array2 GBPUSD,H1: Строка № 1 Колонка № 2
11:43:09 RW_Array2 GBPUSD,H1: Строка № 2 Колонка № 0
11:43:09 RW_Array2 GBPUSD,H1: Строка № 2 Колонка № 1
11:43:09 RW_Array2 GBPUSD,H1: Строка № 2 Колонка № 2
11:43:09 RW_Array2 GBPUSD,H1: Строка № 3 Колонка № 0
11:43:09 RW_Array2 GBPUSD,H1: Строка № 3 Колонка № 1
11:43:09 RW_Array2 GBPUSD,H1: Строка № 3 Колонка № 2
11:43:09 RW_Array2 GBPUSD,H1: Строка № 4 Колонка № 0
11:43:09 RW_Array2 GBPUSD,H1: Строка № 4 Колонка № 1
11:43:09 RW_Array2 GBPUSD,H1: Строка № 4 Колонка № 2
11:43:09 RW_Array2 GBPUSD,H1: Содержимое массива загруженного из файла
11:43:09 RW_Array2 GBPUSD,H1: -0
11:43:09 RW_Array2 GBPUSD,H1:-3492922600540551200000000000000000000000000000000000000000000
11:43:09 RW_Array2 GBPUSD,H1: 0
11:43:09 RW_Array2 GBPUSD,H1: -0
11:43:09 RW_Array2 GBPUSD,H1: -3492922600540551200000000000000000000000000000000000000000000
11:43:09 RW_Array2 GBPUSD,H1: 0
11:43:09 RW_Array2 GBPUSD,H1: -0
11:43:09 RW_Array2 GBPUSD,H1: -3492922600540551200000000000000000000000000000000000000000000
11:43:09 RW_Array2 GBPUSD,H1: 0
11:43:09 RW_Array2 GBPUSD,H1: -0
11:43:09 RW_Array2 GBPUSD,H1: -349292260054065400000000000000000000000000000000000000000000
11:43:09 RW_Array2 GBPUSD,H1: 0
11:43:09 RW_Array2 GBPUSD,H1: -0
11:43:09 RW_Array2 GBPUSD,H1: -349292260054065400000000000000000000000000000000000000000000
11:43:09 RW_Array2 GBPUSD,H1: 0
11:43:09 RW_Array2 GBPUSD,H1: removed