Это - непростая задача. И однозначного решения не имеет.
Если Вы считаете свой вариант долгим, то попробуйте читать файл не сначала. Установите указатель, например, за 100 байт до конца файла. Этот размер (в данном случае 100) должен быть заведомо больше размера любой вашей строки.
Если Вы считаете свой вариант долгим, то попробуйте читать файл не сначала. Установите указатель, например, за 100 байт до конца файла. Этот размер (в данном случае 100) должен быть заведомо больше размера любой вашей строки.
Вот тут есть грамотная работа с файлом "MQL4: Новый взгляд на эквиобъемные графики"
Во-первых, Конец строки не всегда там, где его ждешь - http://simple-testing.blogspot.com/2007/12/blog-post_10.html.
Во-вторых, что мешает сначала считать файл в строковый массив (http://simple-testing.blogspot.com/2007/03/blog-post_30.html), а потом записать новый файл?
Во-вторых, что мешает сначала считать файл в строковый массив (http://simple-testing.blogspot.com/2007/03/blog-post_30.html), а потом записать новый файл?
Во-вторых, что мешает сначала считать файл в строковый массив (http://simple-testing.blogspot.com/2007/03/blog-post_30.html), а потом записать новый файл?
Нет никакого желания читать этот файл вообще. Сейчас это часовки с 98 года, 3 с лишним мега на файл. Файлов сейчас 8, может стать больше..
Буду ставить указатель близко к концу файла, Slawa, спасибо за идею!
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Убился, помогите. Скорее всего, уперся во что-то элементарное.
Суть: нужен сборщик данных из МТ, но не переписывающий файл каждый раз заново, а добавляющий недостающую историю в конец. Соответственно, в файле нужно найти последнюю строку, распарсить дату/время, взять из МТ данные с этой точки и записать. Но у меня упорно не выходит получить начало последней строки поиском с конца файла, только в лоб:
while( !FileIsEnding( handle ) )
txt = FileReadString( handle );
при этом файл я открываю с "левым" разделителем.
Как решить задачу? Прямой поиск в конечном варианте неприемлем, слишком долго.
Спасибо.