From 4c6329a018d02d50aab2d763305b535ea02e6e9b Mon Sep 17 00:00:00 2001 From: vasily popov <1005220@mail.ru> Date: Tue, 3 Dec 2019 18:20:08 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=BC=D0=B5=D0=BD=D1=8C=D1=88=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BA=D0=BE=D0=B3=D0=BD=D0=B8=D1=82=D0=BE?= =?UTF-8?q?=D0=B2=D0=BD=D0=BE=D1=81=D1=82=D0=B8=20=D1=84=D1=83=D0=BD=D0=BA?= =?UTF-8?q?=D1=86=D0=B8=D0=B8=20=D0=A0=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB=D0=B8?= =?UTF-8?q?=D1=82=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CamelCase.os" | 45 +++++++++++-------- 1 file changed, 27 insertions(+), 18 deletions(-) diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/CamelCase.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/CamelCase.os" index 27a73a8..efe59b2 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/CamelCase.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/CamelCase.os" @@ -70,19 +70,34 @@ Для Индекс = 0 По Частицы.Количество()-1 Цикл Если Индекс >= Частицы.Количество()-1 Тогда Прервать; - КонецЕсли; - Если ЭтоСимволВерхнегоРегистра(Частицы[Индекс][0]) И ЭтоСимволНижнегоРегистра(Частицы[Индекс+1][0]) Тогда - Значение = Частицы[Индекс][Частицы[Индекс].Количество()-1]; - МассивПеребора = Новый Массив; - МассивПеребора.Добавить(Значение); - Для Каждого Стр из Частицы[Индекс+1] Цикл - МассивПеребора.Добавить(Стр); - КонецЦикла; - Частицы[Индекс+1] = МассивПеребора; - Частицы[Индекс].Удалить(Частицы[Индекс].Количество()-1); - КонецЕсли; + КонецЕсли; + ОбработкатьПоследовательностьОтВерхнегоРегистраКНижнему(Частицы, Индекс); КонецЦикла; + + Результат = СобратьМассивСтрокИзРезультатов(Частицы); + Возврат Результат; +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +// Пример: "PDFД", "окумент" в "PDF", "Документ" +Процедура ОбработкатьПоследовательностьОтВерхнегоРегистраКНижнему(Частицы, Индекс) + Если ЭтоСимволВерхнегоРегистра(Частицы[Индекс][0]) И ЭтоСимволНижнегоРегистра(Частицы[Индекс+1][0]) Тогда + Значение = Частицы[Индекс][Частицы[Индекс].Количество()-1]; + МассивПеребора = Новый Массив; + МассивПеребора.Добавить(Значение); + Для Каждого Стр из Частицы[Индекс+1] Цикл + МассивПеребора.Добавить(Стр); + КонецЦикла; + Частицы[Индекс+1] = МассивПеребора; + Частицы[Индекс].Удалить(Частицы[Индекс].Количество()-1); + КонецЕсли; +КонецПроцедуры + +Функция СобратьМассивСтрокИзРезультатов(Частицы) Результат = Новый Массив; Для каждого Массив из Частицы Цикл Если Массив.Количество() = 0 Тогда @@ -91,14 +106,8 @@ СобраннаяСтрока = СтрСоединить(Массив); Результат.Добавить(СобраннаяСтрока); КонецЦикла; - Возврат Результат; - -КонецФункции - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции +КонецФункции Функция ЭтоСимволНижнегоРегистра(Знач Символ) Набор = Кириллица()+Английские();