Что-то не работает StringSplit. В Comment выпадает qwe;rty;uio. И как быть с многомерными массивами? Предположим когда qwe - должен находиться в 1м измерении, rty - во 2м и uio - в 3м или когда qwe - 1я строка, rty - 2я, а uio - 3я. Может стоит добавить указатель как распределять инфу в массиве или на количество измерений?
Мне нужно получить из БД массив(пример mydb.fetch_array("SELECT id,title FROM `calendar` limit 30",news);). Как видим должен вернуться 2 мерный массив, содержащий 30 строк, в других случаях размерность может быть любой. Если изменить запрос на "SELECT concat_ws(';',id,title) FROM calendar limit 30", то БД вернет 1 мерный массив, содержащий 30 строк вида 1;AUD AIG Manufacturing Index, 2;JPY Average Cash Earnings y/y и тд. Я планирую получать инфу из БД запросами 2го варианта построчно и загружать их в массив. Сможет ли StringSplit справиться с таким и какие могут быть варианты реализации?
1) StringSplit разбивает строку по коду символа, а не по строке. В приведённом Вами коде имеется предупреждение о конверсии строки в число! 2) Например можно все данные запроса разделить между собой ';', а в MQL программе после использования StringSplit(data,';',array) учитывать, что чётный (начиная с 0,2,4, и т.д) элемент это id, а нечётный (1,3,5) это title для предсоящего id
// тут можно проверить, что количество элементов чётноеint count=ArraySize(a)/2;
for(int i=0;i<count; i++)
{
Print(a[i*2],",",a[i*2+1]);
}
// выведет// 1,AUD AIG Manufacturing Index// 2,JPY Average Cash Earnings y/y// ...
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Что-то не работает StringSplit. В Comment выпадает qwe;rty;uio. И как быть с многомерными массивами? Предположим когда qwe - должен находиться в 1м измерении, rty - во 2м и uio - в 3м или когда qwe - 1я строка, rty - 2я, а uio - 3я. Может стоит добавить указатель как распределять инфу в массиве или на количество измерений?
Мне нужно получить из БД массив(пример mydb.fetch_array("SELECT id,title FROM `calendar` limit 30",news);). Как видим должен вернуться 2 мерный массив, содержащий 30 строк, в других случаях размерность может быть любой. Если изменить запрос на "SELECT concat_ws(';',id,title) FROM calendar limit 30", то БД вернет 1 мерный массив, содержащий 30 строк вида 1;AUD AIG Manufacturing Index, 2;JPY Average Cash Earnings y/y и тд. Я планирую получать инфу из БД запросами 2го варианта построчно и загружать их в массив. Сможет ли StringSplit справиться с таким и какие могут быть варианты реализации?
2) Например можно все данные запроса разделить между собой ';', а в MQL программе после использования StringSplit(data,';',array) учитывать, что чётный (начиная с 0,2,4, и т.д) элемент это id, а нечётный (1,3,5) это title для предсоящего id
Нет, управлять памятью из DLL к сожалению никак.
Т.е. передать из MQL в DLL неинициализированный динамический массив (без выделения памяти ArrayResize) и уже в DLL его поресайзить не получится?
P.S. Извиняюсь за некропостинг, но надо ...
Т.е. передать из MQL в DLL неинициализированный динамический массив (без выделения памяти ArrayResize) и уже в DLL его поресайзить не получится?
Т.е. передать из MQL в DLL неинициализированный динамический массив (без выделения памяти ArrayResize) и уже в DLL его поресайзить не получится?