Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Мониторинг текстового файла.  (Прочитано 12640 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ezus
Опытный

il
Offline Offline

« : 23-05-2012 07:16 » 

Здравствуйте.

Есть процесс, который постоянно\периодически пишет сообщение в текстовый файл.

Есть ли возможность выводить на консоль или визуализировать как-нибудь пополнения этого файла?

При каждой записи файл переоткрывается.  Если очень необходимо, то это можно заменить на разовое открытие.

Спасибо.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 23-05-2012 07:19 » 

а что подразумевается под "визуализировать пополнения этого файла" ?
Записан

ezus
Опытный

il
Offline Offline

« Ответ #2 : 23-05-2012 07:21 » 

а что подразумевается под "визуализировать пополнения этого файла" ?
Ничего особенного - просто увидеть на экране новый текст в темпе пополнения без моего участия.
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 23-05-2012 07:39 » 

аналог никсового
tail -f
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #4 : 23-05-2012 07:46 » 

открыть файл на чтение (для этого необходимо, чтобы программа, создающая лог, открывала его расшаренным на чтение), узнать размер файла (GetFileSize) , если размер файла менялся, прочитать содержимое (всё целиком или дочитать по старому размеру)
Записан

zubr
Гость
« Ответ #5 : 23-05-2012 08:33 » 

Желательно поставить нотификационный фильтр на изменение файла (FindFirstChangeNotification, FindNextChangeNotification или ReadDirectoryChanges), хотя можно и в цикле по таймауту.
Записан
ezus
Опытный

il
Offline Offline

« Ответ #6 : 23-05-2012 09:31 » 

Спасибо.
К сожалению, как я понял, каких-то более-менее стандартных инструментов типа UNIX pipe нет.
Еще раз - спасибо.
Записан
zubr
Гость
« Ответ #7 : 23-05-2012 10:35 » 

Ну есть еще вариант использовать каналы ввода-вывода для консоли.
1. Создаем консольное приложение.
2. Создаем прожку, которая будет запускать консольный процесс.
3. Прожка открывает нужный файл на чтение и через CreateProcess запускает консольный процесс, предварительно в структуре STARTUPINFO, установив STARTUPINFO::hStdInput равным хендлу открытого файла.
Записан
ezus
Опытный

il
Offline Offline

« Ответ #8 : 24-05-2012 06:14 » 

zubr
Что-то похожее я и имел ввиду, только готовое.
Записан
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #9 : 08-06-2012 05:10 » 

готовую программу можно поробовать поискать в инете
а так, как вариант, можно попробовать использовать Excel. В котором в качестве источника данных указать этот файл и в св-вах источника указать автообновление
правда выводить будет все строки и через указаный промежуток времени
Записан

I Have Nine Lives You Have One Only
THINK!
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines