Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Файловая система
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.10.2009, 14:20
Аватар для psyl
psyl psyl вне форума
Прохожий
 
Регистрация: 09.05.2009
Сообщения: 6
Репутация: 10
По умолчанию нужен аналог tail -f <...> |grep <...>

Всем привет.
Нужен аналог tail -f <...> |grep <...> для мониторинга больших файлов.
Дабы выводились эти самые хвостики на экран,в memo или куданить исчо.
Подскажите, пожалуйста.
Ответить с цитированием
  #2  
Старый 04.10.2009, 15:00
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Я видимо не в теме, можно поподробнее?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 04.10.2009, 15:49
Аватар для psyl
psyl psyl вне форума
Прохожий
 
Регистрация: 09.05.2009
Сообщения: 6
Репутация: 10
По умолчанию

Есть такая *nix-овая команда tail,которая идет читает конец файла.
С ключом -f продолжает читать до остановки пользователем.
grep -поиск слова
тоесть он читает конец файла,и ищет совпадения-выдает строку со словом
__________________
С уважением,
Константин
slln@yandex.ru
Ответить с цитированием
  #4  
Старый 04.10.2009, 23:15
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Т.е. чтение с конца файла до нахождения определенного вхождения?
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #5  
Старый 05.10.2009, 02:06
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Лично я с работой этой комманды незнаком, опишите как можно подробнее.
Насколько большой этот конец файла в строках.
Что значит "С ключом -f продолжает читать до остановки пользователем."
и т.д.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #6  
Старый 05.10.2009, 09:20
Аватар для psyl
psyl psyl вне форума
Прохожий
 
Регистрация: 09.05.2009
Сообщения: 6
Репутация: 10
Печаль

Цитата:
Сообщение от Aristarh Dark
Т.е. чтение с конца файла до нахождения определенного вхождения?
Наверное,да.
я себе эта так представляю,хотя могу ошибаться.
открывается файл,ставится метка,при изменении файла,от еэтой метки к концу файла идет поиск ключевого слова,при нахождении запоминается позиция,строка выводится на экран и продолжает поиск до конца файла...
Ну эт я так думаю.
Просто идей особых у меня нету.Fopen делать файлам около 300-500 Мб желания нету.
Мне хотя бы идеи какие-нить
__________________
С уважением,
Константин
slln@yandex.ru
Ответить с цитированием
  #7  
Старый 05.10.2009, 09:23
Аватар для psyl
psyl psyl вне форума
Прохожий
 
Регистрация: 09.05.2009
Сообщения: 6
Репутация: 10
По умолчанию

Цитата:
Сообщение от Страдалецъ
Лично я с работой этой комманды незнаком, опишите как можно подробнее.
Насколько большой этот конец файла в строках.
Что значит "С ключом -f продолжает читать до остановки пользователем."
и т.д.
Ну попробуй сам.
Это nix-овая команда(САМАЯ ИЗВЕСТАНАЯ ),но будет работать и в CMD.exe/
tail -f [путь к файлу] |grep [слово,котороебудешь искать]
при появлении этого слова в файле - выдаст на экран.
__________________
С уважением,
Константин
slln@yandex.ru
Ответить с цитированием
  #8  
Старый 07.10.2009, 08:15
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Если-бы у меня была возможность ее посмотреть, я бы вопросы не задавал. В микрософтовых осях такого не наблюдается.
Но сразу вижу проблему, которой под никсами по слухам нет - занятость файла. Если прога которая обновляет этот файл, держит его постоянно открытым, то ось так просто этот файл не даст для открытия вашему приложению.
Попробуйте для начала получить доступ к нему таким путем:
Код:
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  
Старый 08.10.2009, 11:37
Аватар для psyl
psyl psyl вне форума
Прохожий
 
Регистрация: 09.05.2009
Сообщения: 6
Репутация: 10
По умолчанию

Цитата:
Сообщение от Страдалецъ
Если-бы у меня была возможность ее посмотреть, я бы вопросы не задавал. В микрософтовых осях такого не наблюдается.
Но сразу вижу проблему, которой под никсами по слухам нет - занятость файла. Если прога которая обновляет этот файл, держит его постоянно открытым, то ось так просто этот файл не даст для открытия вашему приложению.
Попробуйте для начала получить доступ к нему таким путем:
Код:
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;
Если получиться, тогда будем дальше думать.

Получилось.
Последние 20 символов в мемо вывел.
Мб,сделать таймер на вывод??
Тогда получится обычный tail....
__________________
С уважением,
Константин
slln@yandex.ru
Ответить с цитированием
  #10  
Старый 08.10.2009, 11:44
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Ну тогда дальше дело простого дизайна. Определится с необходимым количеством выводимой информации, вместо пробных 20 байт.
Если предполагается осуществлять мониторинг на постоянной основе, тогда конечно обработать в события таймера очередной поиск по ключевому слову. Основу я вам дал, дальше только полет вашей фантазии.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #11  
Старый 08.10.2009, 11:53
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Кстати, если у вас файл меняет при обновлении размер или дату, тогда можно начинать с проверки этих данных, а уже потом проводить поиск по ключевым словам.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #12  
Старый 08.10.2009, 11:56
Аватар для psyl
psyl psyl вне форума
Прохожий
 
Регистрация: 09.05.2009
Сообщения: 6
Репутация: 10
По умолчанию

Еще вопросик:а если файлов 20 штук.
Они довольно большие.
Вот например щаз 2 файла весят на сегодняшний момент - 3 мб каждый.
к вечеру соответсвенно - будет 100,может больше
И таких не один
\\\\\\\\
Могут ли бы проблемы?
__________________
С уважением,
Константин
slln@yandex.ru
Ответить с цитированием
  #13  
Старый 08.10.2009, 12:36
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Так попробуйте, если все без ошибок сделаете, то проблем не вижу. Задача-то вроде не сильно сложная и не сильно напряжная для компа.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:37.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter