[INTERFACE]
DIALOG, "Замена по регулярному выражению", 380, 333;
STATIC, "Где заменяем", 4, 4, 72, 20;
EDIT, 172, 4, 196, 20, string Text;
CHECK, "Вырезать и Заменить между (точное совпадение)", 4, 28, 300, 20, int ZP;
EDIT, 4, 52, 176, 20, string ZONA1;
EDIT, 192, 52, 176, 20, string ZONA2;
STATIC, "Смещение символов от начала", 4, 76, 172, 20;
EDIT, 192, 76, 100, 20, int SM1;
STATIC, "Смещение символов от окончания", 4, 100, 184, 20;
EDIT, 192, 100, 100, 20, int SM2;
STATIC, "Что заменяем (Регулярное выражение)", 4, 124, 208, 20;
EDIT, 216, 124, 152, 20, string Reg;
STATIC, "На что заменяем (точное совпадение)", 4, 148, 204, 20;
EDIT, 216, 148, 152, 20, string For_What;
STATIC, "Флаги (через | )", 4, 172, 100, 20;
EDIT, 116, 172, 196, 20, int F;
STATIC, "Сколько заменим (или -1)", 4, 196, 132, 20;
EDIT, 144, 196, 100, 20, int Kol;
STATIC, "Результат замененного текста", 4, 220, 160, 20;
EDIT, 172, 220, 100, 20, int MText;
STATIC, "Комментарий", 4, 248, 76, 20;
EDIT, 84, 248, 284, 20, unknown Comment;
BUTTON_OK, "Принять", 152, 276, 100, 20;
BUTTON_CANCEL, "Закрыть", 268, 276, 100, 20;
[END]


[APPEARANCE]
COLOR = 155, 175, 55;
SIZE_X = 12;
SIZE_Y =6;
[END]

[INFO]
[ENDL]>>Reg>>[ENDL]>>For_What>>[ENDL]>>Comment
[END]

[ASSOC_VAR]
Text="Текст, в котором заменим по регулярному выражению!";
ZP=0;
ZONA1="кс";
ZONA2="ни";
SM1=0;
SM2=0;
Reg="(,|!| )";For_What="#";
F=0;
Kol=-1;
MText=Rez_Replace;
V_MText=#~MText~;
Comment=;
[END]

[GLOBAL_VAR]
string ~MText~;
[END]


[EVENT]
IF (ZP==0)ENABLE(GETID(ZONA1), 0);
IF (ZP==0)ENABLE(GETID(ZONA2), 0);
IF (ZP==0)ENABLE(GETID(SM1), 0);
IF (ZP==0)ENABLE(GETID(SM2), 0);
IF (ZP==1)ENABLE(GETID(ZONA1), 1);
IF (ZP==1)ENABLE(GETID(ZONA2), 1);
IF (ZP==1)ENABLE(GETID(SM1), 1);
IF (ZP==1)ENABLE(GETID(SM2), 1);
[END]



[FUNCTION_BODY]
function(int k, string #rez, string text, string reg, string for_what, int flag, int zp, string zona1, string zona2, int sm1, int sm2)
{
  if (zp)
  {
  if (sm1!=0 || sm2!=0) text=cuttext(text, zona1, sm1, zona2, sm2);
  else text=cuttext(text, zona1, zona2);
  }
if (text=="") return 0;
return regexreplace(k, #rez, text, reg, for_what, flag);
}
[END]

[CALL]
(Kol, V_MText, Text, Reg, For_What, F, ZP, ZONA1, ZONA2, SM1, SM2)
[END]

[FUNCTION_LOGIC]  
>0
[END]