ПараметрыИзСтроки (БСП)

Автор: 1С
ОбщийМодуль.СтроковыеФункцииКлиентСервер
БСП

Параметры из строки. Получает значения параметров из строки.

// Получает значения параметров из строки.
//
// Параметры:
//  СтрокаПараметров - Строка - строка, содержащая параметры, каждый из которых представляет собой
//                              фрагмент вида <Имя параметра>=<Значение>, где:
//                                Имя параметра - имя параметра; 
//                                Значение - его значение. 
//                              Фрагменты отделяются друг от друга символами ';'.
//                              Если значение содержит пробельные символы, то оно должно быть заключено в двойные
//                              кавычки (").
//                              Например:
//                               "File=""c:\InfoBases\Trade""; Usr=""Director"";"
//  Разделитель - Строка - символ, которым фрагменты отделяются друг от друга.
//
// Возвращаемое значение:
//  Структура - значения параметров, где ключ - имя параметра, значение - значение параметра.
//
// Пример:
//  Результат = СтроковыеФункцииКлиентСервер.ПараметрыИзСтроки("File=""c:\InfoBases\Trade""; Usr=""Director"";""", ";");
//  - вернет структуру:
//     ключ "File" и значение "c:\InfoBases\Trade"
//     ключ "Usr"  и значение "Director".
//
Функция ПараметрыИзСтроки(Знач СтрокаПараметров, Знач Разделитель = ";") Экспорт
	Результат = Новый Структура;
	
	ОписаниеПараметра = "";
	НайденоНачалоСтроки = Ложь;
	НомерПоследнегоСимвола = СтрДлина(СтрокаПараметров);
	Для НомерСимвола = 1 По НомерПоследнегоСимвола Цикл
		Символ =Сред(СтрокаПараметров, НомерСимвола, 1);
		Если Символ = """" Тогда
			НайденоНачалоСтроки = Не НайденоНачалоСтроки;
		КонецЕсли;
		Если Символ <> Разделитель Или НайденоНачалоСтроки Тогда
			ОписаниеПараметра = ОписаниеПараметра + Символ;
		КонецЕсли;
		Если Символ = Разделитель И Не НайденоНачалоСтроки Или НомерСимвола = НомерПоследнегоСимвола Тогда
			Позиция = СтрНайти(ОписаниеПараметра, "=");
			Если Позиция > 0 Тогда
				ИмяПараметра = СокрЛП(Лев(ОписаниеПараметра, Позиция - 1));
				ЗначениеПараметра = СокрЛП(Сред(ОписаниеПараметра, Позиция + 1));
				ЗначениеПараметра = СократитьДвойныеКавычки(ЗначениеПараметра);
				Результат.Вставить(ИмяПараметра, ЗначениеПараметра);
			КонецЕсли;
			ОписаниеПараметра = "";
		КонецЕсли;
	КонецЦикла;
	
	Возврат Результат;
КонецФункции

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

ПодставитьПараметрыВСтрокуИзМассива (БСП)

ПодставитьПараметрыВСтроку (БСП)

ВставитьПараметрыВСтроку (БСП)

Подставляет параметры в строку

Вставить параметры в строку

ПолучитьПараметрыПодключенияИзСтрокиСоединенияИнформационнойБазы (БСП)

ВставитьПараметрыВСтрокуСогласноТаблицеПараметров (БСП)

1С Менеджер конфигураций