Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2010, 14:49   #1
MORPEH
Пользователь
 
Регистрация: 24.11.2009
Сообщений: 45
По умолчанию WebBrowser - приход нового сообщения

Здравствуйте. Есть некий чат. Парсю его так:

Код:
edt1.Lines.Text:=WebBrowser1.OleObject.document.body.InnerTEXT;
Задача состоит в том, что в него приходят некие сообщения лично мне, и я бы хотел их видеть появлением некого окна, допустим как QIP.
пример сообщения:

Код:
[14:38:25] Гость %( Маркиз ) текст сообщения
Как сделать так, что бы показывались только новые сообщения, а не все.

помогите новичку
MORPEH вне форума Ответить с цитированием
Старый 17.12.2010, 15:17   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Например запоминать последнюю [14:38:25], находить ее и брать только то что ниже этой даты в документе.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.12.2010, 15:22   #3
MORPEH
Пользователь
 
Регистрация: 24.11.2009
Сообщений: 45
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Например запоминать последнюю [14:38:25], находить ее и брать только то что ниже этой даты в документе.
можно пример, в том-то и дело, что время изменяется
MORPEH вне форума Ответить с цитированием
Старый 17.12.2010, 15:24   #4
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

искать примеры по словам "парсинг", "парсинг строк", "парсинг HTML", "всплывающие уведомления", "всплывающие окна" и тому подобное... в инете и конкретно на это сайте МОРЕ инфы...

Цитата:
можно пример, в том-то и дело, что время изменяется
запоминаете время ПОСЛЕДНЕГО пришедшего сообщения, и ищите после него новые сообщения.
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Старый 17.12.2010, 15:37   #5
MORPEH
Пользователь
 
Регистрация: 24.11.2009
Сообщений: 45
По умолчанию

В чем сложность сделать пример и не отсылать в гугл и яндекс.

Если бы нашел бы, не писал бы пост. Давайте уважать все таки
MORPEH вне форума Ответить с цитированием
Старый 17.12.2010, 15:39   #6
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

сложность - нахожусь не на работе, нет ни компилятора не исходников. парсеры пишутся под конкретные сайты. парсеры пишется платно (за деньги*), и не за 5 минут...

конкретная помощь - поищите описания функций Pos и PosEx


* - намек понятен?
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Старый 17.12.2010, 15:44   #7
MORPEH
Пользователь
 
Регистрация: 24.11.2009
Сообщений: 45
По умолчанию

Сложность не в парсере, я уже написал как сделать.

именно показать есть ли новое сообщение или нет.

Допустим в строчку Memo добавляем такую же строчку, и мы должны узнать об этом. И где после этого парсер? Чисто тупо просто сказать есть в мемо данная новая фраза или нет
MORPEH вне форума Ответить с цитированием
Старый 17.12.2010, 17:15   #8
MORPEH
Пользователь
 
Регистрация: 24.11.2009
Сообщений: 45
По умолчанию

Код:
var
  Form1: TForm1;
  flag:boolean;
implementation

{$R *.dfm}

procedure TForm1.Memo1Change(Sender: TObject);
begin
if (pos('yo',memo1.Text)>0) and (not flag)then begin showmessage('!'); flag:=not flag; end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  flag:=false;
end;
Но показывает постоянно
MORPEH вне форума Ответить с цитированием
Старый 18.12.2010, 08:44   #9
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

1 - по таймеру сравнивать длину текста в мемо.
2 - по таймеру сравнивать количество строк в мемо...

для любой из этих целей создаешь глобальную переменную типа Cardinal
в неё записываешь количество символов/строк...

в каждой интерации таймера делаешь следующее:

- считаешь количество строк мемо.
- сравниваешь со счетчиком.
- если разница :
--- записываешь новое количество в счетчик
--- выводишь сообщение о новом посте
- если не разница - выходишь из процедуры

элементарный алгоритм совсем.... чему вас на информатике учили, небось ворду с экселем *покачал головой*


Код:
procedure Timer1Timer(Sender:TObject);
begin
 if memo1.lines.count<>GlobalCount then begin
  GlobalCount:=Memo1.Lines.Count;
  ShowMessage('Новая соапщения насяника!');
 end else Exit;
end;
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}

Последний раз редактировалось Johnson; 18.12.2010 в 08:47.
Johnson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выбор нового хостера maklin Свободное общение 1 12.12.2010 01:25
мини приход / расход ... (если таоке возможно в excel) paska27 Microsoft Office Excel 16 27.07.2010 22:28
БД, Запрос на приход/расход, не получается задействовать несколько обьектов kvadratnt Помощь студентам 0 06.06.2009 15:23
таблица приход-расход ISSA БД в Delphi 15 13.06.2008 11:15
как отследить приход данных на Com- port shurik_7866 Общие вопросы Delphi 1 03.04.2008 18:27