Показать сообщение отдельно
  #9  
Старый 17.04.2014, 15:04
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Да они и так по-полочкам разложены, удобно со значениями в стринглист работать, но если очень хочется чтоб в отдельных переменных были строки, то пжлст, вот

Для начала
Код:
var
CN, OU, O, STREET, L, ST, C, OID_2_5_4_12,
OID_2_5_4_4, OID_2_5_4_41: string;
...
потом
Код:
{ Вариант I, на доверии }

// Вставить до sm.Free

      CN:= sm[0];
      OU:= sm[1];
      O:= sm[2];
      STREET:= sm[3];
      L:= sm[4];
      ST:= sm[5];
      C:= sm[6];
      OID_2_5_4_12:= sm[7];
      OID_2_5_4_4:= sm[8];
      OID_2_5_4_41:= sm[9];
Код:
{ Вариант II, с проверкой наличия нужной строки}

{в процедуре необходимо сделать это

...
 sm.Add(s2);  // sm.Add(Copy(s2, Pos('=', s2) + 1, Length(s2)));
... 

в двух местах}


for i := 0 to sm.Count-1 do
     begin
     if Copy(sm[i],1,Pos('=', sm[i]) - 1) = 'CN' then
      CN:= Copy(sm[i],Pos('=', sm[i]) + 1, Length(sm[i]));
     if Copy(sm[i],1,Pos('=', sm[i]) - 1) = 'OU' then
      OU:= Copy(sm[i],Pos('=', sm[i]) + 1, Length(sm[i]));
     if Copy(sm[i],1,Pos('=', sm[i]) - 1) = 'O' then
      O:= Copy(sm[i],Pos('=', sm[i]) + 1, Length(sm[i]));
     if Copy(sm[i],1,Pos('=', sm[i]) - 1) = 'STREET' then
      STREET:= Copy(sm[i],Pos('=', sm[i]) + 1, Length(sm[i]));
     if Copy(sm[i],1,Pos('=', sm[i]) - 1) = 'L' then
      L:= Copy(sm[i],Pos('=', sm[i]) + 1, Length(sm[i]));
     if Copy(sm[i],1,Pos('=', sm[i]) - 1) = 'ST' then
      ST:= Copy(sm[i],Pos('=', sm[i]) + 1, Length(sm[i]));
     if Copy(sm[i],1,Pos('=', sm[i]) - 1) = 'C' then
      C:= Copy(sm[i],Pos('=', sm[i]) + 1, Length(sm[i]));
     if Copy(sm[i],1,Pos('=', sm[i]) - 1) = 'OID.2.5.4.12' then
      OID_2_5_4_12:= Copy(sm[i],Pos('=', sm[i]) + 1, Length(sm[i]));
     if Copy(sm[i],1,Pos('=', sm[i]) - 1) = 'OID.2.5.4.4' then
      OID_2_5_4_4:= Copy(sm[i],Pos('=', sm[i]) + 1, Length(sm[i]));
     if Copy(sm[i],1,Pos('=', sm[i]) - 1) = 'OID.2.5.4.41' then
      OID_2_5_4_41:= Copy(sm[i],Pos('=', sm[i]) + 1, Length(sm[i]));
 end;
но это дебилизм полный, и сразу наводит на мысли о здравии составителя. Если что, этот G-код не мой, возможно навеяло ветром
Ответить с цитированием