Разбиение строки на структуру параметров

Различные полезные вещи для программистов 1С

Разбиение строки на структуру параметров

Сообщение julyp » Вс авг 07, 2011 10:58 pm

Данная функция разбивает строку вида "Параметр1=Значение1;Параметр2=Значение2" на структуру параметров

Код: Выделить всё
// (Строка)
Функция      РазбитьСтрокуНаПараметры(Строка) Экспорт
   
   Строка =Строка + ";";
   ТекущийСимвол = "";
   ТекущийПараметр = "";
   
   СтруктураПараметров = Новый Структура;
   
   Для н = 1 По СтрДлина(Строка) Цикл
      
      ТекущийСимвол = Сред(Строка, н, 1);
      
      Если ТекущийСимвол = ";" Тогда
         //Закончили считывание параметра
         
         ОбработанныйПараметр = СокрЛП(ТекущийПараметр);
         
         Если ОбработанныйПараметр <> "" Тогда
            // Разделяем параметр на ключ и значение и записываем в структуру
            
            ПозицияРавно = Найти(ОбработанныйПараметр, "=");
            ДлинаПараметра = СтрДлина(ОбработанныйПараметр);
            
            Если ПозицияРавно > 0 Тогда
               Если ПозицияРавно = ДлинаПараметра +1 Тогда
                  // Случай "Ключ="
                  
                  Ключ = Сред(ОбработанныйПараметр, 1, ПозицияРавно - 1);
                  Значение = "";
               Иначе
                  // Случай "Ключ=Значение"
                  
                  Ключ = Сред(ОбработанныйПараметр, 1, ПозицияРавно - 1);
                  Значение = Сред(ОбработанныйПараметр, ПозицияРавно + 1, ДлинаПараметра - ПозицияРавно);
               КонецЕсли;
            Иначе
               
               Ключ = ОбработанныйПараметр;
               Значение = "";
            КонецЕсли;
            
            СтруктураПараметров.Вставить(Ключ, Значение);
         КонецЕсли;
         
         ТекущийПарамтр = "";
      Иначе
         ТекущийПараметр = ТекущийПараметр + ТекущийСимвол;
      КонецЕсли;
   КонецЦикла;
   
   Возврат СтруктураПараметров;
КонецФункции
julyp
Администратор
 
Сообщения: 127
Зарегистрирован: Вт май 25, 2010 6:55 am

Вернуться в Полезные вещи

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron