ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

C++ Builder и регулярные выражения
  #1  
Старый 16.04.2010, 16:14
Gin
Участник форума
Регистрация: 11.09.2008
Сообщений: 107
Провел на форуме:
262809

Репутация: 21
По умолчанию C++ Builder и регулярные выражения

Не знал куда запостить вроде тема и к С++ относиться и к Delphi так что создал тему.

Вообщем проблема такого характера подключил к своему проекту curl получаю страничку её нужно распарсить, ну думаю регулярки же должны быть, нахожу компонент TRegExpr он соответсвенно под Delphi подключаю к проекту запускаю компиляцию, компилятор создает заголовочный файл, подключаю его, вроде все окей работает, но ввожу регулярные выражения ничего не находит.

Кто сталкивался с проблемой может есть либо более лучшие решения чем TRegExpr или если несложно выложить свой рабочий простой пример.
 
Ответить с цитированием

  #2  
Старый 16.04.2010, 16:16
GhostOnline
Участник форума
Регистрация: 20.12.2008
Сообщений: 277
Провел на форуме:
828081

Репутация: 84
По умолчанию

Код в студию. Этот класс замечательно работает
 
Ответить с цитированием

  #3  
Старый 16.04.2010, 16:29
Gin
Участник форума
Регистрация: 11.09.2008
Сообщений: 107
Провел на форуме:
262809

Репутация: 21
По умолчанию

Код:
  HINSTANCE cl = NULL;
if( ( cl = LoadLibrary( "libcurl.dll" ) ) == NULL )
MessageBox(NULL, "I can't load libcurl","ERROR", 0);

TRegExpr *RegExpr = new TRegExpr;
String cookiefile;
CURL *curl;
String table;
String url;
curl = curl_easy_init();
url=Edit1->Text;
if(url=="")
url="mail.yahoo.com";
if(curl) {
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION,Writer);
curl_easy_setopt(curl, CURLOPT_WRITEDATA,&table);
curl_easy_setopt(curl, CURLOPT_URL,url);
curl_easy_setopt(curl, CURLOPT_HEADER , 1 );
curl_easy_setopt(curl, CURLOPT_COOKIEFILE, cookiefile);
curl_easy_setopt(curl, CURLOPT_COOKIEJAR, cookiefile);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST,  2);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, false);
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1);
curl_easy_perform(curl);
curl_easy_cleanup(curl);

RegExpr->Expression="#\<meta(.*?)\>#";

if(RegExpr->Exec(table))
Label1->Caption =RegExpr->ErrorMsg(RegExpr->LastError());

Label1->Caption =RegExpr->Match[0];

}
FreeLibrary(cl);
}
Может дело в регулярках т.к. писал регулярки как в php могу предположить что синтаксис здесь другой используеться.
 
Ответить с цитированием

  #4  
Старый 16.04.2010, 16:35
GhostOnline
Участник форума
Регистрация: 20.12.2008
Сообщений: 277
Провел на форуме:
828081

Репутация: 84
По умолчанию

С++ не знаю. Но вот вроде Exec возвращает тру если выражение найдено,
у тебя получается если найдено то
Label1->Caption =RegExpr->ErrorMsg(RegExpr->LastError()) ?
Дай мне пример того что находится в table я составлю рабочую регулярку и проверим
 
Ответить с цитированием

  #5  
Старый 16.04.2010, 16:36
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме:
6075534

Репутация: 2731


Отправить сообщение для mailbrush с помощью ICQ
По умолчанию

Решетки убери.
 
Ответить с цитированием

  #6  
Старый 16.04.2010, 16:39
Gin
Участник форума
Регистрация: 11.09.2008
Сообщений: 107
Провел на форуме:
262809

Репутация: 21
По умолчанию

Как всегда дъявол кроеться в мелочах =)
Спасиб mailbrush, спасиб GhostOnline.

Не могли бы скинуть полезные статьи по теме (может заволялись где нить в закромах), что в случае чего не плодить топиков.
 
Ответить с цитированием

  #7  
Старый 16.04.2010, 16:45
GhostOnline
Участник форума
Регистрация: 20.12.2008
Сообщений: 277
Провел на форуме:
828081

Репутация: 84
По умолчанию

Документация на русском http://www.autocombats.info/files/regexp/index.html
 
Ответить с цитированием

  #8  
Старый 16.04.2010, 17:57
M_script_
Постоянный
Регистрация: 29.10.2008
Сообщений: 306
Провел на форуме:
1819761

Репутация: 180
Отправить сообщение для M_script_ с помощью ICQ
По умолчанию

Зачем регулярки? Методов Delete и SetLength класса AnsiString недостаточно?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярные выражения: выбрать из html кода все картинки за исключением первой kof PHP, PERL, MySQL, JavaScript 18 15.02.2010 00:09
Регулярные выражения (Borland C++ Builder 6) mailbrush С/С++, C#, Delphi, .NET, Asm 1 26.10.2009 14:19
Delphi - RegExp (Регулярные выражения) mailbrush С/С++, C#, Delphi, .NET, Asm 14 29.09.2009 17:31
Embarcadero: C++ Builder 2009 Kollinz С/С++, C#, Delphi, .NET, Asm 1 11.08.2009 11:27
[Статья] Создание расширения для Windows Explorer при помощи C++ Builder Dobby007 С/С++, C#, Delphi, .NET, Asm 2 29.03.2009 08:58



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ