HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

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

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

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

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

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

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

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

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

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

Репутация: 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
С нами: 9152955

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

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

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

Репутация: 2731


По умолчанию

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

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

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

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

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

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

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

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

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

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

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



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



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


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




ANTICHAT ™ © 2001- Antichat Kft.