Имя: Пароль:
1C
1С v8
Обход строки
0 JUST4LOL
 
24.09.20
08:06
Здравствуйте. Подскажите пожалуйста, задача такая:
Необходимо выполнить прямой и обратный обход вводимой строки. Например, дана строка: Привет. Обход должен выглядеть так:
Привет
пРивет
прИвет
приВет
привЕт
привеТ
И собственно в обратном порядке.
1 Aleksey
 
24.09.20
08:08
и в чем проблема? Я токое в досе делал, а уж в 1с это изи
2 Fish
 
24.09.20
08:09
(0) В цикле
3 JUST4LOL
 
24.09.20
08:19
Не получается
4 Aleksey
 
24.09.20
08:22
(3) ну значит это не твоё,  смирись
5 Fish
 
24.09.20
08:27
(3) Покажи, как делаешь.
6 JUST4LOL
 
24.09.20
08:32
НижнийРегистр = НРег(ПолеВвода);
Счетчик = 1;
Пока Счетчик <= СтрДлина(ПолеВвода) Цикл
    ТекстСимвол = ВРег(Сред(ПолеВвода, Счетчик));
    Счетчик = Счетчик + 1;
    КонецЦикла;
Сообщить(ТекстСимвол);

Например вот так,
7 Bigbro
 
24.09.20
08:35
толстовато
8 JUST4LOL
 
25.09.20
05:32
В общем, я разобрался

&НаКлиенте
Процедура ПолеВводаПриИзменении(Элемент)

    
НижнийРегистр = НРег(ПолеВвода);

х = 1;
Пока х <= СтрДлина(НижнийРегистр) Цикл
    Начало = НРег(Лев(НижнийРегистр, х - 1));
    БольшаяБуква = ВРег(Сред(НижнийРегистр, х, 1));
    ПраваяСторона = НРег(Сред(НижнийРегистр, х + 1));    
    Сообщить(Начало + БольшаяБуква + ПраваяСторона);
    х = х + 1;    
КонецЦикла;


у = 0;
х = СтрДлина(ПолеВвода);
Пока х >= 1 Цикл
    
    Начало = НРег(Лев(НижнийРегистр, х - 1));
    БольшаяБуква = ВРег(Сред(НижнийРегистр, х, 1));
    ПраваяСторона = НРег(Прав(НижнийРегистр, у));    
    Сообщить(Начало + БольшаяБуква + ПраваяСторона);
    х = х - 1;
    у = у + 1;
КонецЦикла;

КонецПроцедуры
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший