Записывайте массив при помощи цикла. Саму структуру пишите через FileWriteStruct():
int nTotal = ArraySize(list); FileWriteInteger(habdle, nTotal); // Запись размера массива для того, чтобы корректно потом прочитать массив for (int i = 0; i < nTotal; +i) FileWriteStruct(handle, list[i]);P. S. Упс., не увидел, что в структуре есть string. А строки - это данные переменной длины. Тогда FileWriteStruct() не поможет. Нужно самому писать сериализацию для структуры.
Тоже щас об этом подумал, если кому интересно щас в качестве примера смотрю вот этот код, там как раз чувак массив структур пишет в файл
http://investflow.ru/docs/mql4/api/FileWriteStruct
- investflow.ru
@Ihor Herasko - А в mql4 нет строк фиксированной длины? - типо как в C++ можно написать char a[255];
Это не строка, а массив символов. В него как раз и нужно будет преобразовать тип string. Делается это при помощи функций StringToCharArray() - для char, StringToShortArray() - для wide char.
А разве не сохраняется через FileWriteArray()?
там в структуре одна переменная типа стринг
вот делали такую задачу https://www.mql5.com/ru/forum/85652/page17#comment_12370424
метод Save() посмотрите, там запись строк
Короче задача сохранить массив структур в бинарный файл
Собственно сама структура
Собственно код заполнения и сохранения
Класс стора
иии короче выясняется что функция FileWriteArray ожидает массив в котором нет массва структур.черт меня это поставило немного в тупик.
Поковырявшись в учебнике я не чего не нашел подходящего для решения этой проблемы.
Может и прямого решения в лоб нет, - кто нибуть сталкивался с такой задачей?
Какие есть идеи?
Структура - всегда строка. Массив структур - массив строковых данных. Никто не мешает сравнивать элементы этих массивов целиком, без детализации по элементам. Главное - не забывать о выравнивании.
там в структуре одна переменная типа стринг
Что-то как-то промеж глаз она попала. Тогда вместо нее использовать массив uchar фиксированного размера. Если известен максимальный размер строк. А если в строке может быть что угодно, тогда писать свою функцию сохранения в текстовый файл.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Короче задача сохранить массив структур в бинарный файл
Собственно сама структура
Собственно код заполнения и сохранения
Класс стора
иии короче выясняется что функция FileWriteArray ожидает массив в котором нет массва структур.черт меня это поставило немного в тупик.
Поковырявшись в учебнике я не чего не нашел подходящего для решения этой проблемы.
Может и прямого решения в лоб нет, - кто нибуть сталкивался с такой задачей?
Какие есть идеи?