Ну вообще-то перед записью в файл в целях отладки и самопроверки неплохо бывает сделать Print в журнал того, что вы вообще пытаетесь
сохранить. Убедитесь сперва таким образом, что у вас там не 0.
Ну вообще-то перед записью
в файл в целях отладки и самопроверки неплохо бывает сделать Print в журнал того, что вы вообще пытаетесь сохранить.
Убедитесь сперва таким образом, что у вас там не 0.
1. Я так понимаю, что код OnDeinit не полный? Иначе совершенно не понятно на кой леший нужно копировать один массив в другой... К тому же это проще.
2. У Вас нет проверки на размер массива. Возможно, он вообще имеет 0-й размер? Не заполнился. Уже говорили - для начала распринтуйте все значения и смотрите откуда ноги растут (скорее всего именно оттуда, откуда и положено).
3. Вот это для записи строк.
И не нужно стесняться заглядывать в документацию.
1. Я так понимаю, что код OnDeinit не полный? Иначе совершенно не понятно на кой леший нужно копировать один массив в другой... К тому же это проще.
2. У Вас нет проверки на размер массива. Возможно, он вообще имеет 0-й размер? Не заполнился. Уже говорили - для начала распринтуйте все значения и смотрите откуда ноги растут (скорее всего именно оттуда, откуда и положено).
3. Вот это для записи строк.
И не нужно стесняться заглядывать в документацию.
Спасибо, я распрентировал. Нет, размер массива не равен 0.
Передача данных происходит с функции OnTick() в OnDeinit . Возможно в ошибка здесь ?
Массив данных создается в OnTick() , а используется в OnDeinit () .
Спасибо, я распрентировал. Нет, размер массива не равен 0.
Передача данных происходит с функции OnTick() в OnDeinit . Возможно в ошибка здесь ?
Массив данных создается в OnTick() , а используется в OnDeinit () .
Ваш массив datetime tmp_date_buff[]; // массив дат индикатора объявлен на глобальном уровне. Он одинаково виден во всех функциях (поэтому и спрашивал зачем Вы его ещё и дублируете?). Возможно, где то в коде происходит деинициализация или удаление этого массива. Ищите.
После записи, файл необходимо закрыть
void FileClose( int file_handle // handle файла );Пока файл не закрыт или не записан на диск принудительно содержимое прочесть не получится. И вся проблема.
После записи, файл необходимо закрыть
Пока файл не закрыт или не записан на диск принудительно содержимое прочесть не получится. И вся проблема.Ваш массив datetime tmp_date_buff[]; // массив дат индикатора объявлен на глобальном уровне. Он одинаково виден во всех функциях (поэтому и спрашивал зачем Вы его ещё и дублируете?). Возможно, где то в коде происходит деинициализация или удаление этого массива. Ищите.
Спасибо, но , к сожалению, не помогло. Я вставил FileClose()
Пробуйте ещё и ещё. Должно помочь. Я проверил. И исправьте эту строку
int file_handle = FileOpen(InpDirectoryName+"//"+InpFileName,FILE_READ|FILE_WRITE|FILE_CSV);
так
int file_handle = FileOpen(InpDirectoryName+"\\"+InpFileName,FILE_READ|FILE_WRITE|FILE_CSV);
Ещё можно добавить
int file_handle = FileOpen(InpDirectoryName+"\\"+InpFileName,FILE_READ|FILE_WRITE|FILE_CSV|FILE_COMMON);
тогда после закрытия тестера файл не потеряется.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования