数组元素是 字符串 类型,并且包含 -等 特殊字符

var
  s, ss, ds, qx, dz,sn ,biosstr: string;
  I: Integer;
  ja, jo: ISuperObject;
begin
  ja := SA([]);

  jo := SO();

  jo.S['a'] := '455-555';
  ja.AsArray.Add( jo.AsObject.GetValues.AsArray[0] );
  jo.S['a'] := '455-444';
  ja.AsArray.Add( jo.AsObject.GetValues.AsArray[0] );
  jo.S['a'] := '455-666';
  ja.AsArray.Add( jo.AsObject.GetValues.AsArray[0] );

  jo := SA([ja.AsArray[0]]);
  ShowMessage( jo.AsString + ' ' + ja.AsArray[0].AsString );
  for I := 0 to jo.AsArray.Length - 1 do
    ShowMessage( jo.AsArray[I].AsString);
  Exit;

  ShowMessage( SA([ja.AsArray[0]]).AsString );
    ShowMessage( SA([ja.AsArray[1]]).AsString );
      ShowMessage( SA([ja.AsArray[2]]).AsString );
//  ShowMessage( ja.AsArray[0].AsArray[0].AsString);
  Exit;
//不能直接 用 
jo := so('444-555');
ja.asArray.Add( jo );


//否则,中间的-后的内容会 消失,而且 没有引号

  ShowMessage( ja.AsString); //[444]

先构建一个 名值对象,然后,取值的数组第一个元素

jo.AsObject.GetValues.AsArray[0];


--------------------------------------

jo := SO();
jo.S['aaa'] := '444/*+-.~!@#$%^&()=555';
ja := SA([]);
ja.AsArray.Add( jo.AsObject.GetValues.AsArray[0] );
ShowMessage( ja.AsString);

 
 
原文地址:https://www.cnblogs.com/CodeGear/p/4762260.html