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