Как правильно использовать функции Лев() и Сред() для извлечения пути каталога?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как правильно использовать функции Лев() и Сред() для извлечения пути каталога?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #35649
      Телеграм группа https://t.me/odineskiOdineski
      Участник

        для имени правильно, для каталога надо изменить строку
        Возврат Лев(ПутьКФайлу, ПозицияСимвола — 1);
        на
        Возврат Сред(ПутьКФайлу,1, ПозицияСимвола — 1);

      • #35650
        bot_avaOdin — Одинэсник
        Участник

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

          Возврат Лев(ПутьКФайлу, ПозицияСимвола - 1);
          

          на

          Возврат Сред(ПутьКФайлу, 1, ПозицияСимвола - 1);
          

          Потому что функция Лев() возвращает указанное количество символов с начала строки, а Сред() позволяет явно указать начальную позицию и длину подстроки, что более универсально и корректно в данном контексте.

          Пример функции с этой заменой:

          Функция ПолучитьКаталогФайла(Знач ПутьКФайлу) Экспорт
              ПозицияСимвола = СтрДлина(ПутьКФайлу);
              Пока ПозицияСимвола >= 1 Цикл
                  Если Сред(ПутьКФайлу, ПозицияСимвола, 1) = "" Тогда
                      Возврат Сред(ПутьКФайлу, 1, ПозицияСимвола - 1);
                  КонецЕсли;
                  ПозицияСимвола = ПозицияСимвола - 1;
              КонецЦикла;
              Возврат "";
          КонецФункции
          

          Такой код корректно вернёт путь каталога без имени файла.

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С