Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Придется глянуть.))
WHOLE_ARRAY не пробовали?
Если спецификации массивов по выделяемой памяти в С++ и MQL совпадают, то можно попробовать нач. индекс 0 и конечный 400*15-1.
https://www.mql5.com/ru/docs/files/filewritearray
пустой файл. Видимо тоже для одномерных...
Пишу так:
//--- запишем данные массива в конец файла
FileSeek(filehandle,0,SEEK_END);
FileWriteArray(filehandle,param,0,WHOLE_ARRAY);
//--- закрываем файл
FileClose (filehandle);
пустой файл. Видимо тоже для одномерных...
Пишу так:
//--- запишем данные массива в конец файла
FileSeek(filehandle,0,SEEK_END);
FileWriteArray(filehandle,param,0,WHOLE_ARRAY);
//--- закрываем файл
FileClose (filehandle);
пустой файл. Видимо тоже для одномерных...
Пишу так:
//--- запишем данные массива в конец файла
FileSeek(filehandle,0,SEEK_END);
FileWriteArray(filehandle,param,0,WHOLE_ARRAY);
//--- закрываем файл
FileClose (filehandle);
Попробуйте кол-во элементов 400*15-1. Заодно посмотрим спецификацию по распределению памяти в MQL.
Для начала, я бы одномерный массив туда бросил, для проверки работоспособности.
Зы Там кол-во, а не последний индекс, так что нужно 400*15.
Попробуйте кол-во элементов 400*15-1. Заодно посмотрим спецификацию по распределению памяти в MQL.
Для начала, я бы одномерный массив туда бросил, для проверки работоспособности.
Зы Там кол-во, а не последний индекс, так что нужно 400*15.
filehandle= FileOpen(InpDirectoryName+"//"+InpFileName,FILE_READ|FILE_WRITE|FILE_BIN);
//--- запишем данные массива в конец файла
//FileSeek(filehandle,0,SEEK_END);
FileWriteArray(filehandle,params,0,1);
//--- закрываем файл
FileClose (filehandle);
пустой файл
Слеши не в ту степь повернуты. Файл не открыт, и в него ничего не пишется. В справке
Хорошо бы массив чем-нибудь инициализировать, чтобы можно было идентифицировать незаполненные значения. Убрать FILE_READ, соответственно, не нужен FileSeek().
пустой файл
Я бы не стал в этой ситуации пренебрегать FileSeek(filehandle,0,SEEK_END); Только SEEK_SET, а не SEEK_END. Хотя, конечно, указатель сам должен встать на начало.
А файл создается?
Я бы не стал в этой ситуации пренебрегать FileSeek(filehandle,0,SEEK_END); Только SEEK_SET, а не SEEK_END. Хотя, конечно, указатель сам должен встать на начало.
А файл создается?
да, создается
Тогда не понимаю. Я не вижу в чем косяк. Давайте прямо из справки экзэмпл возьмем. И оттуда будем плясать. Он то должен работать.)
ЗЫ Там, кстати, можно просто имя файла написать, без всяких путей. Он сам найдет куда записаться. Там папка для записи - раз и все. У MQ это называется экосистема.)
PS файлы перед началом удалите. Пусть прога сама создает. Может выясниться, что вы не тот файл смотрите.)
Тогда не понимаю. Я не вижу в чем косяк. Давайте прямо из справки экзэмпл возьмем. И оттуда будем плясать. Он то должен работать.)
ЗЫ Там, кстати, можно просто имя файла написать, без всяких путей. Он сам найдет куда записаться. Там папка для записи - раз и все. У MQ это называется экосистема.)
PS файлы перед началом удалите. Пусть прога сама создает. Может выясниться, что вы не тот файл смотрите.)
файл тот - решил просто алгоритм записи поменять. Массив создается черед double param[400][15]. Все вроде бы по примеру и пустой файл.
Так у вас даже одномерный не писался и был пустой.
ЗЫ В теме по ссылке для многомерных массивов все как мы и говорили.
ЗЫ А вы его инициализировали, массив, прежде чем писать?
ЗЫ2 У вас одномерный массив инициализирован и объявлен некорректно (или вы не весь код привели).
Уж если инициализировать, то int param[1]; param[0]=2345; или double param[1]; param[0]=23,45;. Можно и по другому - эт в справке посмотрите.