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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2015, 00:40   #11
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,926
По умолчанию

Цитата:
Сообщение от le7o Посмотреть сообщение
Дабы не плодить новых тем, задам связанный вопрос здесь...

regexpr - есть у кого нибудь опыт работы с этим чудом (регулярные выражения для языка Delphi)?
Поделитесь впечатлениями, или может еще есть варианты по подобным модулям/библиотекам?
Хочу попробовать, для фильтрации потока на входе поставить регулярные выражения, для отброса лишнего текста....
По заявлению на сайте сложность выражения, зависит только от фантазии разработчика.
О каких нахрен регулярных выражениях может идти речь при приёме по последовательному протоколу неких данных? Научитесь их правильно принимать!
northener вне форума Ответить с цитированием
Старый 25.12.2015, 06:10   #12
le7o
Форумчанин
 
Регистрация: 19.05.2011
Сообщений: 116
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
О каких нахрен регулярных выражениях может идти речь при приёме
Я как раз и подключаюсь для 'слушания' этих событий, и если мне необходимо слушать только данные для 18 телефонных номеров, на***на мне получать все (для 150 телефонов*) данные, если можно сразу отбрасывать ненужное?


Цитата:
Сообщение от northener Посмотреть сообщение
по последовательному протоколу неких данных?
А я всегда думал что протокол Telnet как раз для обмена текстовыми сообщениями и служит, и относится к сетевым протоколам!?


Цитата:
Сообщение от northener Посмотреть сообщение
Научитесь их правильно принимать!
Интересно каким образом я их еще могу принять по Telnet протоколу, кроме как (ну или массив байт):
Код:
procedure TForm1.IdTelnet1DataAvailable(Sender: TIdTelnet;
  const Buffer: TIdBytes);
var
  str: string;
  Buff: string;
begin
buff :=BytesToString(Buffer, IndyTextEncoding_ASCII);
if Length(buff)>0
then
  begin
// Здесь и планируется отброс ненужного текста по регулярным
//выражениям
      Memo2.Lines.Add(buff);
  end;
Если Вы знаете способ лучше, направьте?

* p.s.: да и мне админ следящий за АТС этого сделать ни когда не позволит видеть например звонки руководства, а что еще хуже бухгалтерии т.к. с помощью такой же простой команды telnet можно подключиться и подслушать любой разговор в "Тихом режиме", т.е. не заметно для разговаривающих абонентов)))

Последний раз редактировалось le7o; 25.12.2015 в 07:12.
le7o вне форума Ответить с цитированием
Старый 25.12.2015, 10:04   #13
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

ИМХО регулярки тут лишние. Они конечно штуки крутые, но ведь и ресурсоемкость у них повыше.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.12.2015, 10:25   #14
le7o
Форумчанин
 
Регистрация: 19.05.2011
Сообщений: 116
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
ИМХО регулярки тут лишние. Они конечно штуки крутые, но ведь и ресурсоемкость у них повыше.
Сегодня попробую протестировать и замерить, а там уже определяться буду, всем спасибо за участие и помощь.
le7o вне форума Ответить с цитированием
Старый 25.12.2015, 12:28   #15
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Если там идут простые строки то проще библиотеку иметь и по ней фильтровать, если там совсем все плохо то думать надо, регулярные не такое зло как кажется.
come-on вне форума Ответить с цитированием
Старый 25.12.2015, 15:37   #16
le7o
Форумчанин
 
Регистрация: 19.05.2011
Сообщений: 116
По умолчанию

http://infostart.ru/public/169174/ - я в основном из за этого поста склоняюсь в сторону регулярных выражений.
le7o вне форума Ответить с цитированием
Старый 25.12.2015, 15:58   #17
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

вы уже замерили?
come-on вне форума Ответить с цитированием
Старый 25.12.2015, 16:30   #18
le7o
Форумчанин
 
Регистрация: 19.05.2011
Сообщений: 116
По умолчанию

Цитата:
Сообщение от come-on Посмотреть сообщение
вы уже замерили?
Нет, скорее всего не успею сегодня, другие задачи пока приоритетнее, но как будет результат - отпишусь в теме.
le7o вне форума Ответить с цитированием
Старый 04.01.2016, 05:43   #19
le7o
Форумчанин
 
Регистрация: 19.05.2011
Сообщений: 116
По умолчанию

Цитата:
Сообщение от come-on Посмотреть сообщение
вы уже замерили?
библиотеку использовал стороннюю TRegExpr (Андрей Сорокин), а не ту которая идет с Delphi:

Если повесить функцию парсинга на входящий поток: один звонок - 0.009 мс, 10 звонков(одни и те же номера) - 0,054 мс. - что меня устраивает.

Если использовать метод предложенный Stilet, тут по времени не замерял, но прога повисает без отельного потока...

Найденное решение: буду парсить входящий поток и обрабатывать его методом предложенным Stilet, т.к. приходит все равно лишний текст + все в отдельном потоке.
le7o вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
idTelnet/idTelnetServer (delphi) dyonysos Работа с сетью в Delphi 0 05.02.2010 18:05
Сообщение HellMercenariess Свободное общение 1 21.11.2009 04:42
Сообщение... KoBRaAndrey Общие вопросы Delphi 8 02.10.2009 18:56
Сообщение Shevali Общие вопросы Delphi 3 07.06.2009 19:53
IdTelnet ][-Wizzard Работа с сетью в Delphi 1 10.07.2008 11:11