Кто подскажет, как посчитать количество строк в CSV-файле? И как можно считывать значения с произвольной строки файла?
Посмотрите здесь https://book.mql4.com/ru/functions/files
Там есть пример, а в примере - цикл while(). Поставьте в цикл счётчик, кот. будет считать циклы (строки).
Посмотрите здесь https://book.mql4.com/ru/functions/files
Там есть пример, а в примере - цикл while(). Поставьте в цикл счётчик, кот. будет считать циклы (строки).
еще добавлю! если структура CSV статична, сроки всегда имеют одинаковую длину - длинна ее заранее известна или известна после первого чтения
быстрее чем FSEEK ничего не найти!
встать на нужную строку можно одним движением!
---
FSEEK для скорости чтения - можно так же применять для файлов с неизвестной структурой!
для этого достаточно пройти одним проходом и убедиться что все строки имеют одинаковую длину! и запомнить это!
это будет платой! за дальнейший мгновенный доступ
---
допустим надо встать на 111105 строку и длинна - а длина строки 55 байт
параметром FSEEK будет, 111105*55
это гораздо быстрее чем открыть файл и ползти до 111105-й строки
миллион строк читать одно а одним движением переместиться в нужную точку это иное!
---
но если длинна строк разная то тут уже FSEEK не так хорош
Данные сохраняются в файл в начале каждого минутного бара.
Сохраняются так:
int handle=FileOpen(" Psixi.csv", FILE_READ|FILE_WRITE, ";");
FileSeek(handle, 0, SEEK_END );
int zapis=FileWrite(handle,Vremy_Terminal,Bid,Psix,BariOtkr );
Длина строки разная.
Мне надо в текущий момент времени знать номер последней заполненной строки.
Если программа сохраняет данные в строку, значит она знает ее номер. Я тоже хочу знать.
Возможно ли такое средствами MQL не используя массивов?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования