问题是这样,我从XML里读出一批的姓名,个数不知,想暂时放到某个字符串数组里,就像这样str[0]= 'Zhang san'
str[1] = 'Li Si'请问delphi里怎么定义这个str,翻了一下午的google也未搞定,TStringlist什么的试的头都大了,还是过来请教了。

解决方案 »

  1.   

    var
     str: array [0..1] of string;
      

  2.   

    使用TStrings// 下面是赋值
    var
      Str: TStrings;
      i: integer;
    begin
      Str := TStringList.Create;
      for i := 1 to 100 do   // 假如,有100个字串
        Str.Add(IntToStr(i));
      Str.Free;
    end;
    // 下面是读出 TStrings 里第11个的内容
    ShowMessage(Str.Strings[10]);
      

  3.   

    To WZCA,赋值怎么赋? str.Strings[0] := 'Zhang San'?另外怎么把赋给一个Olevariant,如
    o: Olevariant;
    o.value := str.Strings[0]? (这样好象不行)
      

  4.   

    既然问题简单,我也来发一帖,
    好久没发过了,哎
    代码如下:var
      lstStr: TStringList;
      I: integer;
    begin
      lstStr:= nil;
      try
        lstStr := TStringList.Create;
        for I := 0 to XXX.ChildNodes.Count - 1 do  //节点名你可以自己写
        begin
          lstStr.Add(XXX.ChildNodes[i].Text); //写入字符串
           //读取是这样的
          ShowMessage(lstStr.Strings[i]);
        end; 
      finally
        FreeAndNil(lstStr);
      end;
    end;自己手动写的,没有测试,原理是这样的.呵呵,你试试!
      

  5.   

    第二个问题我也看了下:
    代码可以按照下面的来写procedure TForm1.Button1Click(Sender: TObject);
    var
      o: Olevariant;
    begin
      o := 'asdasd';
      ShowMessage('asdasdad');
    end;可见,字符串可以直接给可变类型赋值
    另外,delphi中还有这样一句:
    if a variant containing an AnsiString is assigned to an OleVariant, 
    the AnsiString becomes a WideString. 
    The same is true when passing a Variant to an OleVariant function parameter
    另外,顺便问一句,你是不是在做多层?
      

  6.   

    晕,写错了一点
    ShowMessage(o);
    这样才能证明可以直接赋值,是可以执行的.CSDN居然不让我改自己的帖子.晕!
      

  7.   

    1、
    var str:tstrings;2、
    var str array of string-----------
    str.Strings[0] := 'Zhang San'?
    这样赋值肯定是错误的,你确定Stringlist里的第一个object被初始化过了?
    如果是stringlist,自然要用add方法如果是数组方式实现,要保证索引在数组范围之内,如果越界,要有相应的处理
      

  8.   

    var str:tstrings; str.add(这里填什么?我希望填的是个int i,而不是'姓名') = 'Zhang San'
      

  9.   

    难道是var str:tstrings; str.add(int i,'Zhang San') ;
      

  10.   

    可以
    var s:array of string;
    SetLength(s,count);//count,先取得xml节点处理获得姓名个数
    s[0]:='Zhang san';
    ...
    或者
    var list:Tstringlist;
    begin
      List := TStringList.Create;
      List.Add('Zhang san');
    ... 
     
      

  11.   

    取出就是
    list[0]   //得到值Zhang san
    list[1]
    ...