![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Задача: открыть файл для чтения и читать из него строки, по мере того как др. программа их в него записывает.
Узнать что строка добавлена можно только проверяя периодически с использованием таймера? Или можно, как либо отловить событие добавления строки в него? |
#2
|
||||
|
||||
![]() Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
![]() Интересная статья и пример, нет ли ссылки на продолжение (часть 2)?
На первый взгляд мне не подходит по двум моментам: 1) в статье отлавливают изменения файлов находящихся на самом компьютере, а мне желательно так же доступных через сетевое окружение (об этом должны рассказать в части 2). 2) Сказано, что событие изменения размера файла зафиксируется только после его закрытия использующей его программой, что тоже не устроит. |
#4
|
|||
|
|||
![]() Поутру пришла страшная мысль, о не возможности решения моей задачки.
![]() Пока подскажите команду дающую количество строк в файле? Или только вариант цикл прогонять или кидать в стринглист? Каждый раз ради проверки не хотелось бы такого делать... |
#5
|
||||
|
||||
![]() Нет команды дающей количество строк в файле.
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#6
|
||||
|
||||
![]() Ну а как вы хотели. Допустим у вас ведется некий лог в текстовом файле. Некая программа периодически добавляет в этот файл строки. А вот тут может быть по разному реализовано, она может:
1. открыть файл. 2. добавить строку/строки 3. закрыть файл. 4. повторит п.1-3 в процессе работы В этом случае вы отследите без проблем появление новых строк в логе. А может быть и так: 1. открыть файл. 2. добавить строку/строки 3. повторит п.2 в процессе работы 4. закрыть файл. И вот тогда вы не сможете ничего узнать пока прога не отработает. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#7
|
|||
|
|||
![]() Спасибо за ваши комментарии.
Еще подскажите по алгоритму, что будет правильнее для моего случая: вариант (1) 1. открываем файл и считываем строки которые уже есть (обновляя счетчик). Запоминаем размер файла (через функции WinAPI). Файл закрываем. Данные уходят в обработку. 2. в цикле по таймеру скажем раз в 1 секунду проверяем увеличился ли размер файла и если да - открываем файл, считываем след. строку, увеличиваем счетчик, закрываем файл, запоминаем размер. Данные добавляются в обработку. Выход по команде пользователя. вариант (2) - все то же самое, только без проверки и запоминания размера файла. Раз в секунду пробуем открыть файл и считать следующую строку и в случае удачи обновляем счетчик и обрабатываем данные. 2й вариант вроде проще, но открывать(закрывать) для чтения файл придется чаще хотя и не будет проверки размера. Что будет затратнее в плане производительности? |