Имя: Пароль:
1C
 
Врег с исключением
0 1Сергей
 
05.09.09
14:44
Необходимо сделать врег() с исключением. Например, в строке "69-a,b-Bis-zkit/09" сделать все буквы заглавными, кроме сочетания "bis" (его оставить как в оригнале).
пока сделал так:

Функция ВРЕГу(Стр,Искл)
   старт=Найти(Врег(Стр),Врег(Искл));
   Если старт=0 Тогда
       Возврат ВРЕГ(Стр);
   Иначе
       Рез=Врег(Лев(Стр,старт-1));
       Рез=Рез+Сред(Стр,старт,СтрДлина(Искл));
       Рег=Рез+Врег(Сред(Стр,(старт+СтрДлина(Искл)+1)));
       Возврат Рез;
   КонецЕсли;
КонецФункции // ВРЕГу

Есть более изящный способ?
1 ДенисЧ
 
05.09.09
14:45
Если использовать telepat-replace.dll, то есть.
2 Denisыч
 
05.09.09
14:45
ага, все в одну строку забабахать через ?(,,)
3 1Сергей
 
05.09.09
14:47
(2) нет, у меня более красиво и понятно. Если в одну строку, следующий программер будет поминать меня добрым словом
4 1Сергей
 
05.09.09
14:47
(1) они входят в 1С++ или в Формекс?
5 Cthulhu
 
05.09.09
14:48
СтрЗаменить(ВРег(Стр),ВРег(Искл),Искл)
6 ДенисЧ
 
05.09.09
14:48
(4) Нет, это отдельный проект. Выпускается под патронтажем НИИ телепатии, телекинеза и пары психологов.
7 1Сергей
 
05.09.09
14:49
(5) Ух ты! то что нужно :)
правда, очень красиво
8 1Сергей
 
05.09.09
14:53
(5) Хотя Искл будет ни как в оргигинале
9 Cthulhu
 
05.09.09
14:59
(8): угу, это будет нормализация всех вхождений искоючения по регистру...
10 Cthulhu
 
05.09.09
15:00
(9)+: но мне почему-то подумалось, что тебя и такой вариант устроит.. не? ))
11 1Сергей
 
05.09.09
15:02
(10) да, устроит. Спасибо :)
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.