|
Обход строки |
☑ |
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;
КонецЦикла;
КонецПроцедуры
|
|