powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Регулярные выражения на C++ Bilder 6
5 сообщений из 5, страница 1 из 1
Регулярные выражения на C++ Bilder 6
    #32436981
kosmos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пажалуйста, какие ф-ции, классы есть в C++ Bilder 6 для работы с регулярными выражениями?
...
Рейтинг: 0 / 0
Регулярные выражения на C++ Bilder 6
    #32436993
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
#include <pcreposix.h>
...
Рейтинг: 0 / 0
Регулярные выражения на C++ Bilder 6
    #32440703
kosmos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
благодарю

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

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
Регулярные выражения на C++ Bilder 6
    #32440708
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
возьми обертку

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
Регулярные выражения на C++ Bilder 6
    #32446192
kosmos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
большое спасибо, так всё заработало.

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


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