1С СтрДлина – длина строки

Функция 1С СтрДлина(Строка) возвращает количество букв в строке, включая «непечатные» символы (переносы строк и прочее).


Например, использование функции 1С СтрДлина:

  • Выполняем СтрДлина(«Привет, мир!»)
  • 1С возвращает 12 (привет – 6, мир – 3, запятая и восклицательный знак – 2, пробел – 1)

Анализ текста обычно проводят побуквенно. Для этого нужно организовать цикл перебора строки по каждой букве, в чем нам поможет функция 1С СтрДлина().

Добавим в наш анализатор строки программы, проверяющие использование только разрешенных символов, и удаляющие запрещенные.

[VIP_CONTENT]

//В эту процедуру мы будем далее вписывать код
Процедура АнализТекста(Текст)

     Сообщить("Было: " + Текст);

     РазрешенныеСимволы = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЭЮЯабвгдежзийклмнопрстуфхцчшщьэюя1234567890+-*/=";
     НоваяСтрока = ""; //сюда будем копировать то, что не надо удалять

     Сч = 1; //"Счетчик" (обычно сокращают до "Сч") текущего положения буквы, индекс (позиция) первой буквы в строке – 1, однако если использовать позицию 0, то функции работы со строками также вернут первый символ строки, как и при позиции 1
     ДлинаСтроки = СтрДлина(Текст); //Узнаем длину строки

     Пока Сч <= ДлинаСтроки Цикл //повторяем цикл столько раз, сколько букв в строке; так как индекс первой буквы – 1, то индекс последней равен длине строки           Буква = Сред(Текст, Сч, 1); //выделяем 1 букву на позиции счетчика           Поз = Найти(РазрешенныеСимволы, Буква); //ищем наличия символа в строке разрешенных (переменная, выше)           Если Поз = 0 Тогда //Если буква не найдена – это запрещенный символ                Сообщить("В строке использован неразрешенный символ: " + Буква);           Иначе                НоваяСтрока = НоваяСтрока + Буква;           КонецЕсли;           Сч = Сч + 1; //увеличиваем счетчик на один, переходим к следующей букве      КонецЦикла;      Сообщить("Стало: " + НоваяСтрока); КонецПроцедуры
[/VIP_CONTENT]

Обратите внимание – мы узнали длину строки заранее, перед циклом. Это потому что условие в цикле провряется столько раз, сколько итераций (повторений) в цикле.

ДлинаСтроки = СтрДлина(Текст); //Узнаем длину строки
Пока Сч <= ДлинаСтроки Цикл //повторяем цикл

Но, если бы внутри цикла мы изменяли длину строки, тогда условие выглядело вот так:
Пока Сч <= СтрДлина(Текст) Цикл