|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
нужен аналог tail -f <...> |grep <...>
Всем привет.
Нужен аналог tail -f <...> |grep <...> для мониторинга больших файлов. Дабы выводились эти самые хвостики на экран,в memo или куданить исчо. Подскажите, пожалуйста. |
#2
|
||||
|
||||
Я видимо не в теме, можно поподробнее?
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
||||
|
||||
Есть такая *nix-овая команда tail,которая идет читает конец файла.
С ключом -f продолжает читать до остановки пользователем. grep -поиск слова тоесть он читает конец файла,и ищет совпадения-выдает строку со словом С уважением, Константин slln@yandex.ru |
#4
|
||||
|
||||
Т.е. чтение с конца файла до нахождения определенного вхождения?
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#5
|
||||
|
||||
Лично я с работой этой комманды незнаком, опишите как можно подробнее.
Насколько большой этот конец файла в строках. Что значит "С ключом -f продолжает читать до остановки пользователем." и т.д. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#6
|
||||
|
||||
Цитата:
я себе эта так представляю,хотя могу ошибаться. открывается файл,ставится метка,при изменении файла,от еэтой метки к концу файла идет поиск ключевого слова,при нахождении запоминается позиция,строка выводится на экран и продолжает поиск до конца файла... Ну эт я так думаю. Просто идей особых у меня нету.Fopen делать файлам около 300-500 Мб желания нету. Мне хотя бы идеи какие-нить С уважением, Константин slln@yandex.ru |
#7
|
||||
|
||||
Цитата:
Это nix-овая команда(САМАЯ ИЗВЕСТАНАЯ ),но будет работать и в CMD.exe/ tail -f [путь к файлу] |grep [слово,котороебудешь искать] при появлении этого слова в файле - выдаст на экран. С уважением, Константин slln@yandex.ru |
#8
|
||||
|
||||
Если-бы у меня была возможность ее посмотреть, я бы вопросы не задавал. В микрософтовых осях такого не наблюдается.
Но сразу вижу проблему, которой под никсами по слухам нет - занятость файла. Если прога которая обновляет этот файл, держит его постоянно открытым, то ось так просто этот файл не даст для открытия вашему приложению. Попробуйте для начала получить доступ к нему таким путем: Код:
procedure TForm33.Button1Click(Sender: TObject); Var F: TFileStream; S: Array[1..20] of AnsiChar; begin F := TFileStream.Create('c:\test.txt',fmOpenRead + fmShareCompat); F.Seek(-20, soFromEnd); F.Read(S, 20); F.Free; Memo1.Text := S; end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#9
|
||||
|
||||
Цитата:
Получилось. Последние 20 символов в мемо вывел. Мб,сделать таймер на вывод?? Тогда получится обычный tail.... С уважением, Константин slln@yandex.ru |
#10
|
||||
|
||||
Ну тогда дальше дело простого дизайна. Определится с необходимым количеством выводимой информации, вместо пробных 20 байт.
Если предполагается осуществлять мониторинг на постоянной основе, тогда конечно обработать в события таймера очередной поиск по ключевому слову. Основу я вам дал, дальше только полет вашей фантазии. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#11
|
||||
|
||||
Кстати, если у вас файл меняет при обновлении размер или дату, тогда можно начинать с проверки этих данных, а уже потом проводить поиск по ключевым словам.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#12
|
||||
|
||||
Еще вопросик:а если файлов 20 штук.
Они довольно большие. Вот например щаз 2 файла весят на сегодняшний момент - 3 мб каждый. к вечеру соответсвенно - будет 100,может больше И таких не один \\\\\\\\ Могут ли бы проблемы? С уважением, Константин slln@yandex.ru |
#13
|
||||
|
||||
Так попробуйте, если все без ошибок сделаете, то проблем не вижу. Задача-то вроде не сильно сложная и не сильно напряжная для компа.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |