Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Регулярные выражения на C++ Bilder 6 / 5 сообщений из 5, страница 1 из 1
10.03.2004, 20:49
    #32436981
kosmos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения на C++ Bilder 6
Подскажите пажалуйста, какие ф-ции, классы есть в C++ Bilder 6 для работы с регулярными выражениями?
...
Рейтинг: 0 / 0
10.03.2004, 21:09
    #32436993
Lepsik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения на C++ Bilder 6
#include <pcreposix.h>
...
Рейтинг: 0 / 0
12.03.2004, 23:44
    #32440703
kosmos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения на C++ Bilder 6
благодарю

но у меня возникла проблемма:
пр вызове

pcre_exec(temp,NULL,st,st_temp.Length(),0,PCRE_NOTEMPTY,res,res_size);

выскакивают такие ошибки:
[C++ Error] Unit1.cpp(41): E2451 Undefined symbol ' PCRE_NOTEMPTY '
[C++ Error] Unit1.cpp(41): E2034 Cannot convert 'int *' to 'int'
[C++ Error] Unit1.cpp(41): E2340 Type mismatch in parameter 7 ( wanted 'int', got 'int *' )
[C++ Error] Unit1.cpp(41): E2227 Extra parameter in call to pcre_exec(const void *,const void *,const char *,int,int, int * ,int)

компилятор C++ Bilder 6

п.с.
Может есть какой нибудь класс реализующий это болле удобно?

Заранее благодарен
...
Рейтинг: 0 / 0
13.03.2004, 00:01
    #32440708
Lepsik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения на C++ Bilder 6
возьми обертку

www.lepsik.com/src/vmreg.rar

тогда все сводится к такому обращению :


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
// ---------------------------------------------------------------------------
 
// psrse : ALTER TABLE dbo.hlist ADD CONSTRAINT FK_hlist_history FOREIGN KEY (id) REFERENCES dbo.history(ID)

bool extract_alter_fk( String sql_cmd, String &slave_table, String &slave_field, String &master_table, String &master_field )
{
    sql_cmd = sql_cmd.Trim().LowerCase();
    String right_part = sql_cmd;
     TVMRegEx re;
     re <<  "alter[' ']+table[' ']+[dbo.]+" ;;
     if( !re.Search(sql_cmd, true))
        return false;
    right_part = re.Match[ 2 ];

    String shablon_table =  "[a-z,'_']\\w+" ;
    re.Clear();
    re << shablon_table;;
    if( !re.Search(right_part, true) )
        return false;
    slave_table = re.Match[ 1 ];
    right_part = re.Match[ 2 ];

    re.Clear();
    re <<   "foreign[' ']+key " ;
    if( !re.Search(right_part, true) )
        return false;
    right_part = re.Match[ 2 ];

    re.Clear();
    String shablon_field =  "[a-z,'_']\\w+" ;
    re << shablon_field;
    if( !re.Search(right_part, true) )
        return false;
    slave_field = re.Match[ 1 ];
    right_part = re.Match[ 2 ];

    re.Clear();
    re <<  "references " ;
    if( !re.Search(right_part, true) )
        return false;
    right_part = re.Match[ 2 ];

    re.Clear();
    re <<  "\\.+[a-z,'_']\\w+" ;
    if( !re.Search(right_part, true) )
        return false;
    master_table = re.Match[ 1 ]; master_table = (( master_table[ 1 ]=='.')? master_table.SubString( 2 , master_table.Length()) : master_table);
    right_part = re.Match[ 2 ];

    re.Clear();
    re << shablon_field;
    if( !re.Search(right_part, true) )
        return false;
    master_field = re.Match[ 1 ];
    return !master_field.IsEmpty();
}

...
Рейтинг: 0 / 0
17.03.2004, 19:56
    #32446192
kosmos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения на C++ Bilder 6
большое спасибо, так всё заработало.

но этот класс построен на ф-циях pcreposix.h, а они, как я понял из манулов, не поддерживают кирицу. В данной задаче мне это не нужно, но на будующее хотелось бы розобраться. С pcre.h так и не получилось.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Регулярные выражения на C++ Bilder 6 / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]