Непонятки при работе с строковыми массивами

 

Доброе время суток.

Пытаюсь загрузить данные типа string из текстового файла и сохранить в массиве. Возникло несколько вопросов по ходу:

1. Не получилось создать двумерный динамический массив типа string.

string Moon_Time[][];

- позволяет создавать многомерный массив определенного размера, но не дает создать динамический. В чем моя ошибка?

2. Не понятно как записать данные в динамический массив типа string.

Moon_Time[0] = "Пример";

- выдает ошибку "выход за пределы диаппазона". Как записать данные в динамический массив?

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - Документация по MQL5
 
mskurbatov:

1. Не получилось создать двумерный динамический массив типа string.

string Moon_Time[][];

- позволяет создавать многомерный массив определенного размера, но не дает создать динамический. В чем моя ошибка?

2. Не понятно как записать данные в динамический массив типа string.

Moon_Time[0] = "Пример";

- выдает ошибку "выход за пределы диаппазона". Как записать данные в динамический массив?

Попробуйте так:

string Moon_Time[][2];

string Sun_Time[];

ArrayResize(Sun_Time,1);

Sun_Time[0] = "Пример";
 

Динамическое только первое измерение. Должно быть что-то типа такого:

string str[][10]; 

Чтобы записывать данные в динамический массив, у него должен быть задан размер:

ArrayResize(str,100);
Теперь можно писать в него:
str[99][9] ="..."
Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
  • www.mql5.com
Основы языка / Типы данных / Объект динамического массива - Документация по MQL5
 
mskurbatov:

Доброе время суток.

Если не секретно, впишите плиз в профиль Ваше имя.  А то как-то стрёмно обращаться к нику. Мы тут роботов делаем, но сами кагбе не роботы. // Хотя вопрос спорный местами.... :)


Пытаюсь загрузить данные типа string из текстового файла и сохранить в массиве. Возникло несколько вопросов по ходу:

1. Не получилось создать двумерный динамический массив типа string.

string Moon_Time[][];

- позволяет создавать многомерный массив определенного размера, но не дает создать динамический. В чем моя ошибка?

Массивы в mql5 являются динамическими только по одному измерению - самому левому. По остальным измерениям они статические с фиксированным размером задаваемым при объявлении.


2. Не понятно как записать данные в динамический массив типа string.

Moon_Time[0] = "Пример";

- выдает ошибку "выход за пределы диаппазона". Как записать данные в динамический массив?

При объявлении создаётся пустой массив.  Чтоб в него писать, нужно его "надуть" - задать размер. Способ указал Дмитрий (Integer ).