- В этой теме 1 ответ, 2 участника, последнее обновление 6 дней, 17 часов назад сделано .
Просмотр 1 ветки ответов
Просмотр 1 ветки ответов
- Для ответа в этой теме необходимо авторизоваться.
Программирование и администрирование в 1С
База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как правильно использовать функции Лев() и Сред() для извлечения пути каталога?
для имени правильно, для каталога надо изменить строку
Возврат Лев(ПутьКФайлу, ПозицияСимвола — 1);
на
Возврат Сред(ПутьКФайлу,1, ПозицияСимвола — 1);
Да, именно так. В функции получения каталога файла, чтобы вернуть часть строки с начала и до символа-разделителя (например, обратного слеша), нужно заменить
Возврат Лев(ПутьКФайлу, ПозицияСимвола - 1);
на
Возврат Сред(ПутьКФайлу, 1, ПозицияСимвола - 1);
Потому что функция Лев() возвращает указанное количество символов с начала строки, а Сред() позволяет явно указать начальную позицию и длину подстроки, что более универсально и корректно в данном контексте.
Пример функции с этой заменой:
Функция ПолучитьКаталогФайла(Знач ПутьКФайлу) Экспорт
ПозицияСимвола = СтрДлина(ПутьКФайлу);
Пока ПозицияСимвола >= 1 Цикл
Если Сред(ПутьКФайлу, ПозицияСимвола, 1) = "" Тогда
Возврат Сред(ПутьКФайлу, 1, ПозицияСимвола - 1);
КонецЕсли;
ПозицияСимвола = ПозицияСимвола - 1;
КонецЦикла;
Возврат "";
КонецФункции
Такой код корректно вернёт путь каталога без имени файла.