![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 12.01.2010
Сообщений: 7
|
![]()
Приветствую всех! Мне дали такое задание: дается лог файл от почтового сервера и мне надо через специальный компонент RegExpr.dcu(компонент работает как программа RegexBuddy) и мне надо с помощью этого компонента обработать LOG файл следующим образом: дается 5 столбцов(лучше использовать ListBox, но можно и StringGrid) и из файла повыдергивать: в 1 столбец чтобы шло от кого пришло письмо(т.е. E-Mail адрес); во 2 столбец кому пришло письмо; в 3 столбце идет статус письма(т.е. status=sent, blocked, etc); в 4 столбце идет состояние письма(clean, blocked, unknown, removed); в 5 столбце идет размер письма. Каждая строка в каждом столбце должна иметь одну информацию(т.е от кого, кому, размер, состояние и статус должны принадлежать одному событию). Если требуется лог файл и/или компонент, то выложу. Сделать это надо в Delphi 7. Через компонент RegExpr.dcu немного знаю, как должны выглядеть "формулы" для поиска E-mail адреса. Могу также выложить свою программу для примера. Заранее спасибо.
Я еще слишком плохо знаю программирование, так что не судите строго
![]() Последний раз редактировалось Dark_KRONOS; 12.01.2010 в 15:30. |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 29.12.2009
Сообщений: 1,166
|
![]()
если лог - просто текстовый док-т, то зачем через спец компонент? это можно сделать и обычным чтением файла построчно (выдернули из нее что надо в структуру и записали в соответств поля)
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть] |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Приведи фрагмент лога
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#4 |
Регистрация: 12.01.2010
Сообщений: 7
|
![]()
Мне сказали, что желательней именно через этот компонент делать, но можно попытаться и так. Просто с текстовыми файлами никогда не работал.
Я еще слишком плохо знаю программирование, так что не судите строго
![]() Последний раз редактировалось Dark_KRONOS; 12.01.2010 в 15:34. |
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 29.12.2009
Сообщений: 1,166
|
![]()
выложи лог
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть] |
![]() |
![]() |
![]() |
#6 |
Регистрация: 12.01.2010
Сообщений: 7
|
![]()
Nov 10 10:12:54 BazSRV postfix/pickup[7180]: E0B87168109: uid=0 from=<root>
Nov 10 10:12:54 BazSRV postfix/cleanup[8161]: E0B87168109: message-id=<20091110071254.E0B87168109@BazS RV> Nov 10 10:12:54 BazSRV postfix/qmgr[7183]: E0B87168109: from=<root@BazSRV>, size=356, nrcpt=1 (queue active) Nov 10 10:13:07 BazSRV dovecot: pop3-login: Login: user=<fedorov@bazissoft.ru>, method=PLAIN, rip=192.168.168.7, lip=192.168.168.100 Nov 10 10:13:07 BazSRV dovecot: POP3(fedorov@bazissoft.ru): Disconnected: Logged out top=0/0, retr=0/0, del=0/0, size=0 Nov 10 10:13:19 BazSRV postfix/smtpd[8159]: NOQUEUE: reject: RCPT from localhost[127.0.0.1]: 450 4.1.8 <ifoodvajkes@BILL.glbgil.grics.net> : Sender address rejected: Domain not found; from=<ifoodvajkes@BILL.glbgil.grics .net> to=<vladimir@bazissoft.ru> proto=ESMTP helo=<BazSRV> Nov 10 10:13:22 BazSRV postfix/smtpd[9214]: connect from unknown[192.168.168.9] Nov 10 10:13:22 BazSRV postfix/smtpd[9214]: A949C16804A: client=unknown[192.168.168.9] Nov 10 10:13:23 BazSRV postfix/smtpd[12522]: connect from localhost[127.0.0.1] Nov 10 10:13:23 BazSRV postfix/smtpd[12522]: 862A116805C: client=localhost[127.0.0.1] Nov 10 10:13:23 BazSRV postfix/cleanup[12523]: 862A116805C: message-id=<20091110071254.E0B87168109@BazS RV> Nov 10 10:13:23 BazSRV postfix/qmgr[7183]: 862A116805C: from=<root@BazSRV>, size=703, nrcpt=1 (queue active) Nov 10 10:13:23 BazSRV postfix/smtpd[12522]: disconnect from localhost[127.0.0.1] Nov 10 10:13:23 BazSRV amavis[5221]: (05221-03) Passed CLEAN, <root@BazSRV> -> <root@BazSRV>, Message-ID: <20091110071254.E0B87168109@BazSRV> , mail_id: mrIPCO8WonqO, Hits: -0.846, size: 356, queued_as: 862A116805C, 28607 ms Nov 10 10:13:23 BazSRV postfix/local[12525]: 862A116805C: to=<root@BazSRV>, relay=local, delay=0.06, delays=0.02/0.01/0/0.02, dsn=2.0.0, status=sent (delivered to command: procmail -a "$EXTENSION") Nov 10 10:13:23 BazSRV postfix/qmgr[7183]: 862A116805C: removed Nov 10 10:13:23 BazSRV postfix/smtp[12384]: E0B87168109: to=<root@BazSRV>, orig_to=<root>, relay=127.0.0.1[127.0.0.1]:10024, delay=29, delays=0.08/0.03/0.01/29, dsn=2.0.0, status=sent (250 2.0.0 Ok, id=05221-03, from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as 862A116805C) Nov 10 10:13:23 BazSRV postfix/qmgr[7183]: E0B87168109: removed Nov 10 10:13:26 BazSRV postfix/smtpd[8159]: NOQUEUE: reject: RCPT from localhost[127.0.0.1]: 450 4.1.8 <fecvahiewi@host.217.54.176.38.ni le-online.net>: Sender address rejected: Domain not found; from=<fecvahiewi@host.217.54.176.38 .nile-online.net> to=<vladimir@bazissoft.ru> proto=ESMTP helo=<BazSRV> Nov 10 10:13:27 BazSRV postfix/smtpd[8159]: NOQUEUE: reject: RCPT from localhost[127.0.0.1]: 450 4.1.8 <cloitebmel@nat167-sin.ural.net>: Sender address rejected: Domain not found; from=<cloitebmel@nat167-sin.ural.net> to=<vladimir@bazissoft.ru> proto=ESMTP helo=<BazSRV> Nov 10 10:13:27 BazSRV postfix/smtpd[8159]: disconnect from localhost[127.0.0.1] Nov 10 10:13:29 BazSRV postfix/smtpd[8159]: connect from localhost[127.0.0.1] Nov 10 10:13:29 BazSRV postfix/smtpd[8159]: NOQUEUE: reject: RCPT from localhost[127.0.0.1]: 450 4.1.8 <terraqua@dom-3kk7aw7o8r2.osw.vectranet.pl>: Sender address rejected: Domain not found; from=<terraqua@dom-3kk7aw7o8r2.osw.vectranet.pl> to=<bakulina@bazissoft.ru> proto=ESMTP helo=<BazSRV> Nov 10 10:13:30 BazSRV postfix/smtpd[8159]: NOQUEUE: reject: RCPT from localhost[127.0.0.1]: 450 4.1.8 <laryngeskwiy48@Facundo.cpe.telecen tro.net.ar>: Sender address rejected: Domain not found; from=<laryngeskwiy48@Facundo.cpe.te lecentro.net.ar> to=<bakulina@bazissoft.ru> proto=ESMTP helo=<BazSRV> Nov 10 10:13:42 BazSRV dovecot: pop3-login: Login: user=<turin@bazissoft.ru>, method=PLAIN, rip=192.168.168.11, lip=192.168.168.100 Nov 10 10:13:42 BazSRV dovecot: POP3(turin@bazissoft.ru): Disconnected: Logged out top=0/0, retr=0/0, del=0/0, size=0 Nov 10 10:13:45 BazSRV postfix/smtpd[8159]: NOQUEUE: reject: RCPT from localhost[127.0.0.1]: 450 4.1.8 <nevada-tan.sab@inea.supercabotv.com.br>: Sender address rejected: Domain not found; from=<nevada-tan.sab@inea.supercabotv.com.br> to=<bakulina@bazissoft.ru> proto=ESMTP helo=<BazSRV> Nov 10 10:13:45 BazSRV postfix/smtpd[8159]: disconnect from localhost[127.0.0.1] Nov 10 10:13:45 BazSRV dovecot: pop3-login: Login: user=<vladimir@bazissoft.ru>, method=PLAIN, rip=192.168.168.12, lip=192.168.168.100 Nov 10 10:13:45 BazSRV dovecot: POP3(vladimir@bazissoft.ru): Disconnected: Logged out top=0/0, retr=0/0, del=0/0, size=0 Nov 10 10:13:48 BazSRV postfix/smtpd[8159]: connect from localhost[127.0.0.1] Nov 10 10:13:48 BazSRV postfix/smtpd[8159]: NOQUEUE: reject: RCPT from localhost[127.0.0.1]: 450 4.1.8 <dewkhk@comp1.netcabo.pt>: Sender address rejected: Domain not found; from=<dewkhk@comp1.netcabo.pt> to=<bunakov@bazissoft.ru> proto=ESMTP helo=<BazSRV>
Я еще слишком плохо знаю программирование, так что не судите строго
![]() |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Для решения этой задачи хватит и StringGrid'a.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#8 |
Регистрация: 12.01.2010
Сообщений: 7
|
![]()
Это я понимаю, но как примерно мне надо сделать поиск? Какой примерно код для этого, чтобы строка шла по одному событию, след. строка по след. событию и т.д.?
Я еще слишком плохо знаю программирование, так что не судите строго
![]() |
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Я так думаю - в строке все что после третьего двоеточия это событие, а что до, разделяется пробелом - Месяц, Год (или день месяца), Время и т.д. откуда письмо после слова form, куда после слова to. Вашим другом станет функция pos
![]()
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#10 |
Регистрация: 12.01.2010
Сообщений: 7
|
![]()
т.е. я сначала запоминаю, где находится двоеточие, потом ищу from, to, size и т.д.? А как тогда напрямую из файла считать?
Я еще слишком плохо знаю программирование, так что не судите строго
![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
E2015 Ambiguity between 'std::log(double)' and 'std::log(long double)' | Namolem | Помощь студентам | 3 | 02.04.2011 20:22 |
Проблема с обработкой DBF файла | oleg kutkov | Общие вопросы C/C++ | 1 | 22.08.2008 21:07 |
.log файлы | TyoshA | Общие вопросы Delphi | 12 | 25.03.2008 08:31 |
Помогите с обработкой изображений | Dude_first | Мультимедиа в Delphi | 3 | 31.08.2007 16:54 |