Да они и так по-полочкам разложены, удобно со значениями в стринглист работать, но если очень хочется чтоб в отдельных переменных были строки, то пжлст, вот
Для начала
Код:
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-код не мой, возможно навеяло ветром
|