банальщина
где ArrayResize ?
Вот моя реализация. Можете сравнить и использовать
// // Глобальные переменные // int HistoryBars; datetime HistoryTime[]; double HistoryClose[]; //+------------------------------------------------------------------+ //| Загрузка истории котировок из файла | //| Глобальные переменные HistoryBars, HistoryTime, HistoryClose | //+------------------------------------------------------------------+ void WmLoadHistoryFromCsvFile(string filename) { HistoryBars = -1; int handleCsv = FileOpen(filename, FILE_CSV | FILE_READ, ','); if (handleCsv < 1) { Print("File ", filename, ", the last error is '", ErrorDescription(GetLastError()), "'"); return; } HistoryBars = 0; while (!FileIsEnding(handleCsv)) { FileReadString(handleCsv); HistoryBars++; } HistoryBars /= 7; ArrayResize(HistoryTime, HistoryBars); ArrayResize(HistoryClose, HistoryBars); FileSeek(handleCsv, 0, SEEK_SET); for (int index = (HistoryBars - 1); index >= 0; index--) { string csvDate = FileReadString(handleCsv); string csvTime = FileReadString(handleCsv); HistoryTime[index] = StrToTime(csvDate + " " + csvTime); string csvOpen = FileReadString(handleCsv); string csvHigh = FileReadString(handleCsv); string csvLow = FileReadString(handleCsv); string csvClose = FileReadString(handleCsv); HistoryClose[index] = StrToDouble(csvLow); string csvVolume = FileReadString(handleCsv); } FileClose(handleCsv); }
Все. Решил с вашей помощью свою проблему! Спасибо всем!
п.с. Я не программист. С двоичными никогда не сталкивался.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Добрый вечер форумчане! Вопрос к опытным в файловых операциях с массивами. Столкнулся со сложностью сохранения данных в двоичный массив из файла csv. Имеется файл с помещенными в него данными шириной в 4 колонки: валюта (string), цена (double), колонка (int) и колонка (int). Каждое значение в отдельной колонке (здесь для наглядности разделил "/" ). Высота колонок неопределенная. Пример:
EURUSD/1.3200/1/1
GBPUSD/1.5400/5/1
.... и т.д. вниз
Задача считать данные в двоичный массив. Если считывать в таком виде в одномерный, то все ок. Но в виде двоичного ничего не выходит. В приведенном ниже варианте читает только последнюю колонку. Если сменить разделитель на ";", то читает всю строку за раз... В чем здесь у меня ошибка и какие варианты решения существуют? Буду рад оказанной помощи.