|
|
Объединение слов в строке с проставлением заглавных букв
АгентБезопаснойНацио, Garykom, rozer76, RVN, Fish, Гипервизор, Мультук, CepeLLlka, KJlag, Бычье сердце, evgeniy_n, nick86, d4rkmesa, Злопчинский, aka MIK, vbus, Михаил Козлов, Irbis, unenu, Dragonofdwarfs, Ёпрст, privetik, Builder, ads55, Михаил_, AlexKimp, spiller26, ildary, Aleksey, Prog_man, zenik, корум, nysyssimara, Ненавижу 1С, shuhard, Homer, _Batoo
| ☑ |
|
0
Dragonofdwarfs
19.02.26
✎
11:44
|
Коллеги, всем доброго времени суток! Есть ли в БСП функция, которая может превратить строку "Мама мыла раму" в "МамаМылаРаму"?
|
|
|
1
Homer
19.02.26
✎
11:46
|
ТРег
|
|
|
2
Dragonofdwarfs
19.02.26
✎
11:49
|
(1) О, спасибо большое! Ну от пробелов понятно как избавиться)
|
|
|
3
Мультук
гуру
19.02.26
✎
11:54
|
Доверяй, но...
Спросил google-ИИ:
1С БСП стандартная функция которая сделает из "Мама мыла раму" строку "МамаМылаРаму"
Ответ:
// Пример использования:
Текст = "мама мыла раму";
Результат = СтроковыеФункцииКлиентСервер.ВКамелКейс(Текст);
// Результат: "МамаМылаРаму"
Засомневался в имени функции и переспросил:
1С существует ли функция БСП ВКамелКейс
Ответ:
Нет, функции с названием
ВКамелКейс в типовом общем модуле СтроковыеФункцииКлиентСервер (БСП) не существует.
|
|
|
4
rozer76
19.02.26
✎
12:18
|
(3) 🔥
|
|
|
5
Dragonofdwarfs
19.02.26
✎
12:23
|
Теперь интересно, есть ли обратная по смыслу функция?))) Понимаю как самому написать, но это уже сложнее чем: СтрЗаменить(ТРег(Строка), " ", "")
|
|
|
6
Garykom
гуру
19.02.26
✎
12:25
|
(0) Задача явно учебная
Если это не создание паролей ))
В этом случае лучше ее решать более низкоуровнево
Путем работы с символами в строке а не функциями высокого уровня
|
|
|
7
Мультук
гуру
19.02.26
✎
12:28
|
(5)
Если понимаешь, дык напиши, покажи
|
|
|
8
Dragonofdwarfs
19.02.26
✎
12:29
|
(6) В том то и дело, что нет) Смысл в том, чтобы не допускать создания элементов справочника "Команды" с наименованиями содержащими пробел, т.к код, который написан до меня их не обработает) Поэтому в модуле объекта при записи нужна эта тема
|
|
|
9
Dragonofdwarfs
19.02.26
✎
12:32
|
(7)так смысл писать если вдруг она есть в бсп) Если учитывать, что есть аббревиатуры, то будет ещё сложнее чем я думаю
|
|
|
10
rozer76
19.02.26
✎
12:33
|
# Функция разделения верблюжьей нотации
Данная функция преобразует строки из формата "верблюжьей нотации" (camelCase) в строки с пробелами между словами.
## Функция
```bsl
Функция РазделитьВерблюжьюНотацию(Знач Строка)
Если ПустаяСтрока(Строка) Тогда
Возврат "";
КонецЕсли;
Результат = "";
Для Сч = 1 По СтрДлина(Строка) Цикл
ТекСимвол = Сред(Строка, Сч, 1);
// Если это не первый символ и текущий символ - заглавная буква
Если Сч > 1 И Строка(ТекСимвол) = ВерхнийРегистр(ТекСимвол) Тогда
Результат = Результат + " ";
КонецЕсли;
Результат = Результат + ТекСимвол;
КонецЦикла;
Возврат Результат;
КонецФункции;
```
## Примеры использования
- `"МамаМылаРаму"` → `"Мама Мыла Раму"`
- `"ОдинДваТри"` → `"Один Два Три"`
- `"simpleText"` → `"simple Text"`
- `"XMLHttpRequest"` → `"XML Http Request"`
## Особенности
Функция работает путем обнаружения заглавных букв в строке и вставки пробела перед ними (за исключением первой буквы в строке).
|
|
|
11
rozer76
19.02.26
✎
12:34
|
(10) ваш qwen3-coder-plus )
|
|
|
12
Garykom
гуру
19.02.26
✎
12:38
|
(8) В этом случае делают не так
Имена команд или других сущностей (элементов формы) создаешь просто индексированные по порядку
Команда001, Команда002, Команда003 и т.д.
И отдельно хранишь соответствие имен команд и полных названий/синонимов
|
|
|
13
АгентБезопасной Нацио
19.02.26
✎
12:39
|
(10) - `"XMLHttpRequest"` → `"XML Http Request"`
ага, щазз, конечно...
|
|
|
14
Garykom
гуру
19.02.26
✎
12:46
|
(12)+ Ибо преобразовывать ненадежно
Всегда может встретиться непредусмотренное (не поддерживаемое как имена команд/элементов в 1С)
Например символы "+", "-" или нечто еще в исходной строке
|
|
|
15
d4rkmesa
19.02.26
✎
12:53
|
(9) СтандартныеПодсистемыСервер.ПреобразоватьСтрокуВДопустимоеНаименованиеКолонки(...)
|
|
|
16
Злопчинский
19.02.26
✎
13:01
|
(10) мудачный код
Строка(тектмвол) - нафейхоа это если тексимвол и так строка?
Фейхоа проверять сч > 1 в цикле охулиард раз если достаточно после цикла сделать один раз СокрЛ(результат)..?
.
Этот код ИИ писал что ли?
|
|
|
17
rozer76
19.02.26
✎
13:21
|
(16) ага )) см (11) и (3). Как доказательство что не скоро ИИ заменит одинесников.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший