Передача массива string в dll по ссылке - страница 2

 
mql5:
К сожалению, от передачи массива строк в сторонние библиотеки пришлось отказаться из-за безопасности.
Как вариант могу предложить использовать сложение элементов строк через разделитель и передачу этой суммы строк в библиотеку.

P.S.: Если не секрет, напишите, зачем Вам понадобилось передавать массив строк?

Не секрет. Написал длл, которая служит мостом МТ 5 - Mysql. Использование строковых массивов существенно упростило бы задачу, а так буду вынужден получать из базы длинную строку, а потом средствами МТ 5 резать ее и загружать в массив. Код в приложении.
Документация по MQL5: Основы языка / Типы данных / Тип string
Документация по MQL5: Основы языка / Типы данных / Тип string
  • www.mql5.com
Основы языка / Типы данных / Тип string - Документация по MQL5
Файлы:
dll.rar  10 kb
dll_test1.mq5  3 kb
 
Graff:
Не секрет. Написал длл, которая служит мостом МТ 5 - Mysql. Использование строковых массивов существенно упростило бы задачу, а так буду вынужден получать из базы длинную строку, а потом средствами МТ 5 резать ее и загружать в массив. Код в приложении.

Понятно, с последней операцией разрезания строки можем помочь функцией
int StringSplit(const string src,ushort separator,string &dyn_array[]);.
В данный момент она рассматривается на внедрение...

P.S.: собственно и антипод данной функции тоже рассматривается на внедрение
string StringGlue(ushort separator,const string &array[]);

 
mql5:

Понятно, с последней операцией разрезания строки можем помочь функцией
int StringSplit(const string src,ushort separator,string &dyn_array[]);.
В данный момент она рассматривается на внедрение...

P.S.: собственно и антипод данной функции тоже рассматривается на внедрение
string StringGlue(ushort separator,const string &array[]);

Было бы хорошо, но как быть с многомерными массивами в таком случае?
 
mql5:

Понятно, с последней операцией разрезания строки можем помочь функцией
int StringSplit(const string src,ushort separator,string &dyn_array[]);.
В данный момент она рассматривается на внедрение...

P.S.: собственно и антипод данной функции тоже рассматривается на внедрение
string StringGlue(ushort separator,const string &array[]);

Уточните пожалуйста когда эти функции буду реализованы?
 
Эмс... Есть кто живой? Так что с реализацией этих ф-й?
 
StringSplit будет в одном из ближайших билдов, реализация StringGlue отложена на неопределённое время
 
mql5:
StringSplit будет в одном из ближайших билдов, реализация StringGlue отложена на неопределённое время
И на том спасибо. StringSplit будет сам изменять размер массива либо это нужно будет делать вручную?
 
Graff:
И на том спасибо. StringSplit будет сам изменять размер массива либо это нужно будет делать вручную?
Конечно сам, все данные что были в массиве будут затёрты.
Если есть представление о нужной размерности, то можно сделать инициализацию, для избежания многочисленного вызова релокации массива.
 
mql5:
Конечно сам, все данные что были в массиве будут затёрты.
Если есть представление о нужной размерности, то можно сделать инициализацию, для избежания многочисленного вызова релокации массива.
Хорошо. Спасибо. Буду ждать ф-ии.
 

Что-то не работает StringSplit. В Comment выпадает qwe;rty;uio. И как быть с многомерными массивами? Предположим когда qwe - должен находиться в 1м измерении, rty - во 2м и uio - в 3м или когда qwe - 1я строка, rty - 2я, а uio - 3я. Может стоит добавить указатель как распределять инфу в массиве или на количество измерений?

     string news[];
     string test="qwe;rty;uio";
     StringSplit(test,";",news);
     Comment(news[0]);

Мне нужно получить из БД массив(пример 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 справиться с таким и какие могут быть варианты реализации?

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