Поставить указатель на начало последней строки в .csv файле
Поставить указатель в конец, получить его значение, вычесть из него 1, установить указатель на вычисленную позицию, считать один символ, и т.д. пока не будет прочитан символ \r или \n, или позиция указателя не станет 0.
А прям такие мегагромадные файлы, что просто прочитать его весь построчно нельзя?
Только перебором и счетом строк - https://www.mql5.com/ru/docs/files/filereadstring Это сейчас вам нужна предпоследняя, потом и другие понадобятся.))
Хотите непосредственно заданную строку - SQLite вам в помощь. В ДЛЛ всего-то 5 необходимых функций для всего. Остальные на любителя.)

- www.mql5.com
Поставить указатель в конец, получить его значение, вычесть из него 1, установить указатель на вычисленную позицию, считать один символ, и т.д. пока не будет прочитан символ \r или \n, или позиция указателя не станет 0.
А прям такие мегагромадные файлы, что просто прочитать его весь построчно нельзя?
Это он такой после 5 секундного прогона. Он будет большой в боевых условиях.
Благодарю за ответ, милейший.
Это он такой после 5 секундного прогона. Он будет большой в боевых условиях.
Благодарю за ответ, милейший.
Вы этот указатель никогда на последнюю строку не поставите, т.к. пока вы соберетесь туда его ставить, еще неск строк добавятся.) А когда начнете читать, то строка, может случиться, будет уже далеко не последней.
Только перебором и счетом строк - https://www.mql5.com/ru/docs/files/filereadstring Это сейчас вам нужна предпоследняя, потом и другие понадобятся.))
А можете развить свою мысль? Как эту строку прочитать с конца и поставить-таки указатель на начало последней строки, предпоследней. Перебор байтов в цикле с конца с целью проверить \n занимает длительное время, очень длительное.
Интересно, что такое нужное дело и нету стандартной какой-нибудь функции. Надо танцевать с бубном на углях.
Вы этот указатель никогда на последнюю строку не поставите, т.к. пока вы соберетесь туда его ставить, еще неск строк добавятся.) А когда начнете читать, то строка, может случиться, будет уже далеко не последней.
Ну они туда не со скоростью света добавляются. Цель - после октарытия ордера сразу поставить-потом прочитать, потом дописать в другой файл
А можете развить свою мысль? Как эту строку прочитать с конца и поставить-таки указатель на начало последней строки, предпоследней. Перебор байтов в цикле с конца с целью проверить \n занимает длительное время, очень длительное.
Интересно, что такое нужное дело и нету стандартной какой-нибудь функции. Надо танцевать с бубном на углях.
Я про считать байты с конца ничего не говорил.)
Ну они туда не со скоростью света добавляются. Цель - после открытия ордера сразу поставить-потом прочитать, потом дописать в другой файл
Но конфликт вполне реален. Если 40 записей за 5 с.
Удалил часть текста. Подумал, что надо иметь более подробную инфу о задаче. Скажем, в рамках одно программы MQL описанная ТС конструкция выглядит совершенно бессмысленной.
А можете развить свою мысль? Как эту строку прочитать с конца и поставить-таки указатель на начало последней строки, предпоследней. Перебор байтов в цикле с конца с целью проверить \n занимает длительное время, очень длительное.
Интересно, что такое нужное дело и нету стандартной какой-нибудь функции. Надо танцевать с бубном на углях.
Объявляем 2 строковые переменные S и SPred (раз Вам надо последнюю и предпоследнюю - две). Полагаем S="". Читаем файл с его начала построчно в S до конца файла. Перед каждым чтением заносим содержимое S в SPred. Когда чтение закончится, в SPred будет находиться предпоследняя, в S последняя строка. Возможно, надо отдельно обслужить случаи, когда всего строк было меньше 2 и меньше одной.
Или Вам требуются не сами строки, а смещения их начала в файле?
Может быть уже исправили, но не так давно я экспериментировал с перемещением указателя.
Получается такая фигня: в файлах .txt и .csv какие-то сбои шли и не получалось зная количество байт записи в строке переместить указатель куда надо. НО!!! в файле .bin всё чётко считается и указатель перемещается куда душе угодно.
Поэкспериментируйте сейчас как будет получаться. Считаем количество байт согласно документации, int 4 байта, double 8 байт если правильно помню и так далее... И от конца файла перемещать указатель на МИНУС байт...

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всем привет!
Ребята, как поставить указатель FileSeek на начало предпоследней и последней строки в файле?
Мне надо вытянуть из файла из файла вот эти два значения на картинке. Уже много чего перепробовал, но результата не могу добиться.
Буду очень признателен за любую помощь. Спасибо.