Имя: Пароль:
1C
1С v8
Как в коде разложить строку «в стиле конфигуратора» по большим буквам?
,
0 gorakh
 
25.10.16
10:36
Только писать свою функцию разложения?
1 Гипервизор
 
25.10.16
10:45
ВотТакРазложитьЧтоли?
2 gorakh
 
25.10.16
10:47
"Вот так разложить чтоли"
3 Лефмихалыч
 
25.10.16
10:49
сначала найти [A-Z|А-Я]{2,}\
потом [A-Z|А-Я]{1,1}\
4 Fish
 
25.10.16
10:51
(0) Не припомню такой. В типовых есть РазложитьСтрокуВМассивПодстрок(), но она так не умеет.
5 gorakh
 
25.10.16
10:51
(3) А без "регулярки"?
6 Лефмихалыч
 
25.10.16
10:53
(5) а без регулярки скучно и уныло
7 Fish
 
25.10.16
10:53
(5) Только обходить в цикле по символам.
8 Юрий Лазаренко
 
25.10.16
11:01
(7) Так там 10 минут надо, чтобы функцию написать. Строка-константа с символами, перед которыми ставим пробел, и потом в цикле СтрЗаменить(ИсходнаяСтрока, ТекущийСимвол, " " + ТекущийСимвол). В конце для полученной строки (СокрЛ), чтобы убрать добавленный в начале пробел.
9 Ёпрст
 
25.10.16
11:01
(0) ну типа так

ИсходнаяСтрока = "ВасяЛох";
Буковки = "QWERTYUIOPASDFGHJKLZXCVBNMЙЦУКЕНГШЩЗХФЫВАПРОЛДЖЭЯЧСМИТБЮ";
Для к = 1 По СтрДлина(Буковки) Цикл

   ИсходнаяСтрока = СтрЗаменить(ИсходнаяСтрока,Сред(Буковки,к,1)," "+Нрег(Сред(Буковки,к,1)));
КонецЦикла;
10 gorakh
 
25.10.16
11:22
(9) Большое сенкс.
11 ASU_Diamond
 
25.10.16
11:28
(9) так вроде у тебя перед каждой буковкой пробел добавится?
12 ASU_Diamond
 
25.10.16
11:30
(+11) а понял, всё верно будет
13 singlych
 
25.10.16
11:51
(9) Как ты мог забыть Ё с таким ником?
14 Ёпрст
 
25.10.16
11:53
(13) це же пример.
15 Lexey_
 
25.10.16
11:54
(9) а если Слава, и не лох, а КПСС?)
16 Lexey_
 
25.10.16
11:57
+(15)не прокатит
17 Ёпрст
 
25.10.16
11:57
(15) а че, в пофигураторе прокатывает ? И давно ?
18 Lexey_
 
25.10.16
11:59
(17) прокатывает, конечно, всегда вроде было
19 ks_83
 
25.10.16
12:04
(9)На самом деле так
ИсходнаяСтрока = "ВасяЛох";
Буковки="";
Для к = 1 По СтрДлина(ИсходнаяСтрока) Цикл
    Буква=Сред(ИсходнаяСтрока,к,1);
    Если Буква=Врег(Буква) и Найти(Буковки,Буква)=0 Тогда
        Буковки=Буковки+Буква;    
    КонецЕсли;
КонецЦикла;
    
Для к = 1 По СтрДлина(Буковки) Цикл
   ИсходнаяСтрока = СтрЗаменить(ИсходнаяСтрока,Сред(Буковки,к,1)," "+Нрег(Сред(Буковки,к,1)));
КонецЦикла;
Сообщить(ИсходнаяСтрока);
20 Ёпрст
 
25.10.16
12:12
(18) Ну, тогда только перебором символов, по условию, что ежели только одиночная заглавная - втыкать пробел
21 Ёпрст
 
25.10.16
12:21
точнее, перед одной заглавной пробел, если 2 и более, то только перед первой.
22 ELEA26
 
25.10.16
12:38
Пройтись и ставить пробел, если слева маленькая буква, а справа заглавная.
23 ЧеловекДуши
 
25.10.16
12:43
ИсходнаяСтрока = "в стиле конфигуратора";
РедактируемаяСтрока = СтрЗаменить(ИсходнаяСтрока," ",Символы.ПС);

РезультСтрока = "";

Для Сч = 1 По СтрЧислоСтрок(РедактируемаяСтрока) Цикл
СледСлово = СтрПолучитьСтроку(РедактируемаяСтрока,Сч);
Если ПустаяСтрока(СледСлово) тогда
РезультСтрока = РезультСтрока + " ";
Иначе
ПравильнаяСтрока = Врег(Лев(СледСлово,1)) + Сред(СледСлово,2);
РезультСтрока = РезультСтрока + " " + ПравильнаяСтрока;
КонецЕсли;
КонецЦикла;

РезультСтрока = СокрЛП(РезультСтрока);
24 Lexey_
 
25.10.16
13:01
(23) зачем так сложно?
СтрЗаменить(ТРег("в стиле конфигуратора"), " ", "")
25 Ёпрст
 
25.10.16
13:04
(22) Да, это будет верно
AdBlock убивает бесплатный контент. 1Сергей