C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: одновременное чтение нескольких текстовых файлов  (Прочитано 1357 раз)
Next2323
новенький


Сказали спасибо: +0/-0
Offline

Сообщений: 1


« : 15 Декабрь 2012, 22:11:16 »

Доброго всем. Народ, помогите с задачей:

Сторонняя прога ведет мониторинг десяти параметров и записывает каждый параметр в отдельный блокнотик. Обращение к файлу по времени не регламентировано - возможно и три раза в секунду, и возможно раз в пять минут, возможно по одному параметру, а возможно по нескольким одновременно. Параметры пишутся в течение дня, на сл. день создаются новые  тестовые файлы. За день записываеся примерно по 5-7 тысяч строк. Задача в том, что бы последние записи логов оперативно появлялись в моем StringGride, для чего достаточно считывать по пять последних строк с лога.  
Возможные варианты:
1) ежесекундно дергать Memo1->LoadFromFile
2) работать с файлом как с потоком, (но все равно придется построчно  просматривать сверху вниз, смысл этого под вопросом)
3) создать в винде текстовый источник данных и подключиться  к нему (чтото мучал, мучал, ничего адекватного не вышло)

Может кто подскажет более другое решение? Изящность не критична, главное, что бы работало надежно и быстро.
Заранее всем благодарен 

« Последнее редактирование: 16 Декабрь 2012, 18:14:35 от Next2323 » Записан
POV
Участник


Сказали спасибо: +107/-7
Offline

Сообщений: 640


« Ответ #1 : 16 Декабрь 2012, 00:29:01 »

Что значит "в курсе изменений"? Нужен факт изменений или какие-то подробности?
Что касается факта, то достаточно смотреть размер файла, и если он изменился, считать последние несколько строк для детального анализа.
Записан
POV
Участник


Сказали спасибо: +107/-7
Offline

Сообщений: 640


« Ответ #2 : 16 Декабрь 2012, 00:31:07 »

Равно можно и атрибут - время/дата изменения, читать у файла.
Записан
Day
Участник


Сказали спасибо: +11/-1
Offline

Сообщений: 137


« Ответ #3 : 16 Декабрь 2012, 11:50:42 »

А если просто запоминать смещения в файлах начал последних строк?
И читать сразу с нужного места?
Код:
fseek(...);
 fgets(...);
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2025, Simple Machines
Страница сгенерирована за 0.043 секунд. Запросов: 19.