Кто подскажет, как посчитать количество строк в CSV-файле?

 
Кто подскажет, как посчитать количество строк в CSV-файле? И как можно считывать значения с произвольной строки файла?
 
До чего достали такие ничего не говорящие формулировки в заглавиях тем... Неужели нельзя четко сформулировать вопрос в заголовке темы?
 
DrShumiloff писал (а) >>
До чего достали такие ничего не говорящие формулировки в заглавиях тем... Неужели нельзя четко сформулировать вопрос в заголовке темы?

Так лучше?

 
Достаточно считать файл в массив строк, а затем делать то, что требуется уже с массивом. См. Загрузка текстового файла.
 
Skrudg писал (а) >>
Кто подскажет, как посчитать количество строк в CSV-файле? И как можно считывать значения с произвольной строки файла?

API

fseek

 
Skrudg писал (а) >>
Кто подскажет, как посчитать количество строк в CSV-файле? И как можно считывать значения с произвольной строки файла?

Посмотрите здесь https://book.mql4.com/ru/functions/files

Там есть пример, а в примере - цикл while(). Поставьте в цикл счётчик, кот. будет считать циклы (строки).

 
SK. писал (а) >>

Посмотрите здесь 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 не используя массивов?

Причина обращения: