gifts2017

Рекурсивная функция создания вложенных каталогов

Опубликовал Nik_Super (Nik_Super) в раздел Программирование - Практика программирования

Рекурсивная функция создания вложенных каталогов
Навеяно http://www.infostart.ru/articles/256/ Символ № используется как конец обработанной части строки
Функция СущКат(Кат) экспорт
	
	Если СтрДлина(Кат)<4 Тогда Возврат 1 КонецЕсли;
	Атриб=\"\";
	ФС.АтрибутыФайла(Кат, ,Атриб);
	Если Сред(Атриб,4,1)=\"1\" Тогда Возврат 1 КонецЕсли;
	Возврат 0;
КонецФункции

Процедура создкат(Знач Кат) экспорт
	
    
	Если (Прав(Кат,1)<>\"\\") и (Прав(Кат,1)<>\"№\")  Тогда Кат=Кат+\"\\" КонецЕсли;
	Если Найти(Кат,\"№\")=0 Тогда
	
		КолБуквДиска=Найти(Кат,\":\")-1;
		Кат=Лев(Кат,КолБуквДиска+2)+\"№\"+Прав(Кат,СтрДлина(Кат)-(КолБуквДиска+2));
	
	КонецЕсли;
	
	
    ПозНом=Найти(Кат,\"№\");
	Если СущКат(Лев(Кат,ПозНом-2))=0 Тогда ФС.СоздатьКаталог(Лев(Кат,ПозНом-2)) КонецЕсли;
	
	Если Найти(Кат,\"№\")=СтрДлина(Кат) Тогда Возврат КонецЕсли;
	

	Кат=Лев(Кат,ПозНом-1)+Прав(Кат,СтрДлина(Кат)-ПозНом);
	ПозНом=Найти(Прав(Кат,СтрДлина(Кат)-(ПозНом-1)),\"\\")+ПозНом-1;
	Кат=Лев(Кат,ПозНом)+\"№\"+Прав(Кат,СтрДлина(Кат)-ПозНом);
	
	
	
	СоздКат(Кат);
	
	
КонецПроцедуры

См. также

Подписаться Добавить вознаграждение
В этой теме еще нет сообщений.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа