Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> pcre одолел 
:(
    Опции темы
loginrl2
Дата 3.5.2008, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 16.4.2008

Репутация: нет
Всего: нет



запарился с pcre.

всё началось с того что мне надо обычную строку разбить по словам.  шаблон задаю самый обычный "\\s*". Строка "ababa q.1 w.2": то есть должно найтись 3 совпадения...но хрена чего он находит.
Код

...
int parse_str (char *str)
pcre *hpe;
const char *error, *buf;
int erroroffset, i = 0, j = 0;
int ovector[300], wsp[300], count = 0;
if (!(hpe = pcre_compile ("\\s*", PCRE_CASELESS|PCRE_MULTILINE, &error, &erroroffset, NULL)))
   return -1;
pcre_extra *f_ext=pcre_study (hpe, 0, &error);
count = pcre_exec (hpe, f_ext, str, strlen(str), 0, 0, ovector, 300);
...

на выходе count=1 что не соотвествует истине (

решил было подключить pcrecpp но тут же посыпались ошибки из-за Code Generation -> Runtime Library: собирал и проект и pcre как /MDd и как /MTd
Код

msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) already defined in pcrecpp.lib(pcrecpp.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z) already defined in pcrecpp.lib(pcrecpp.obj)
pcrecpp.lib(pcrecpp.obj) : error LNK2019: unresolved external symbol __invalid_parameter_noinfo referenced in function "public: int __thiscall std::_String_const_iterator<char,struct std::char_traits<char>,class std::allocator<char> >::operator-(class std::_String_const_iterator<char,struct std::char_traits<char>,class std::allocator<char> > const &)const " (??G?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHABV01@@Z)


pcrecpp мне не принципиален, но не могу одолеть почему шаблон в сишном pcre не хочет работать...
кто сталкивался с этими проблемами или есть какие то идеи по её решению - помогите.

PM MAIL   Вверх
GremlinProg
Дата 3.5.2008, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106



pcre для выделения слов - это ловля мух пылесосом, попробуй strtok
Цитата

Example
// crt_strtok.c
/* In this program, a loop uses strtok
 * to print all the tokens (separated by commas
 * or blanks) in the string named "string".
 */

#include <string.h>
#include <stdio.h>

char string[] = "A string\tof ,,tokens\nand some  more tokens";
char seps[]   = " ,\t\n";
char *token;

int main( void )
{
   printf( "Tokens:\n" );
   /* Establish string and get the first token: */
   token = strtok( string, seps );
   while( token != NULL )
   {
      /* While there are tokens in "string" */
      printf( " %s\n", token );
      /* Get next token: */
      token = strtok( NULL, seps );
   }
}
Output
Tokens:
 A
 string
 of
 tokens
 and
 some
 more
 tokens




--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
loginrl2
Дата 3.5.2008, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 16.4.2008

Репутация: нет
Всего: нет



регулярки мне нужны будут и в дальнейшем для обработки более сложного текста - разбор слов это первая задача)


PM MAIL   Вверх
asd
Дата 4.5.2008, 07:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 25.6.2006

Репутация: 1
Всего: 1



ггг. офтоп.
в 14:23 pcre его одолел а в 15:45 уже задралsmile http://www.wasm.ru/forum/viewtopic.php?id=26579
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0778 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.