MyArray[2][3]=10;
string MyArray[5][3]; for(int i=0;l<5;i++){ for(int j=0;j<3;j++){ MyArray[i][j]="Строка № "+i+" Колонка № "+j; } }
//+------------------------------------------------------------------+ //| 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,500000); // запись последних 7 элементов FileClose(handle); } int handle1; double varray[5][3]; handle1=FileOpen("mydata.dat", FILE_BIN|FILE_READ); if(handle1>0) { FileReadArray(handle1, varray,0,500000); 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: -349292260054055120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
11:43:09 RW_Array2 GBPUSD,H1: 0
11:43:09 RW_Array2 GBPUSD,H1: -0
11:43:09 RW_Array2 GBPUSD,H1: -349292260054055120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
11:43:09 RW_Array2 GBPUSD,H1: 0
11:43:09 RW_Array2 GBPUSD,H1: -0
11:43:09 RW_Array2 GBPUSD,H1: -349292260054055120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
11:43:09 RW_Array2 GBPUSD,H1: 0
11:43:09 RW_Array2 GBPUSD,H1: -0
11:43:09 RW_Array2 GBPUSD,H1: -349292260054065400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
11:43:09 RW_Array2 GBPUSD,H1: 0
11:43:09 RW_Array2 GBPUSD,H1: -0
11:43:09 RW_Array2 GBPUSD,H1: -349292260054065400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
11:43:09 RW_Array2 GBPUSD,H1: 0
11:43:09 RW_Array2 GBPUSD,H1: removed
Таким образом получается что при чтении невыровненного или многомерного массива из файла информация из массива теряется!
этого кстати не происходит если массив не имеет вложенных массивов или имеет только одно измерение т.е вот такой массив: Myarray[10]; нормально прочитается из бинарника.
как решить проблему, подскажите пожалуйста :)
неа дело не в этом я эту мелочь уже проверял, если ставить 500000 то команда FileWriteArray(handle, MyArray, 0,500000) запишет элементы массива от 0 по количество элементов но не больше.
если поставить 15 будет тоже самое
выполняются но после чтения массива из бинарника содержимое массива или теряется или возвращается в другом формате
который нужно преобразовывать...
вобщем я теряюсь в догадках :)
А вот читать надо столько, сколько надо.
Вы попробуйте при записи сначала записать количество элементов, а потом сам массив. А при чтении сначала вычитывайте размер, а лишь затем сам массив.
как string а в который считывается как double :))
Спасибо разобрался...

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
таблица
---------------
| a | 1 | a1 |
| b | 4 | a2 |
| c | 2 | b4 |
| d | 4 | c5 |
| e | 7 | c4 |
хотелось бы использовать многомерный массив но шо то не соображу никак как таблицу в него запихнуть видимо сказывается пятница :))