现在我数据库一条字段中的值是用逗号分开的,类似于下面:XXX,XXX,XXX 。有几个逗号不确定,可能没有,可能好几个。现在我需要把这个字段的内容添加到combobox,按照逗号隔开的内容分条显示,就是要显示成
XXX
XXX
XXX   这个样子。我想了好久,没想出合适的办法,现在想定义数组,然后按照逗号截取字符串添加到数组中,然后再把数组内容添加进combobox,不知道能不能行,大家有没有更好的办法啊,谢谢了
                                                                                   

解决方案 »

  1.   

    这样是可以的~·
    你用 pos 跟 copy 两个函数 把 字段截出来 放到 数组里
    然后添加 到combobox 就行了
      

  2.   

    按照你的方法截取字符串之后直接添加到combobox.Items.Add()就可以了,不需要存到数组然后再添加
      

  3.   

    pos好像是返回字符第一次出现的位置吧?我怎么返回第二次、第三次、第……出现的位置呢?
      

  4.   

    你先用 pos 返回一个位置 然后用copy 来截 这个位置的前半段 跟后半段~然后对后半段 在用pos 获取“,”的位置...
      

  5.   

    用 pos 跟 copy 两个函数 可以实现 如果数据格式不同 操作比较繁琐
    究其根源 还是统一下 数据格式 才会使操作方便
      

  6.   

    给你个简单方法var
      lStrList : TStringList;
      I: Integer;
    begin
      lStrList.Delimiter := ',';
      lStrList.DelimitedText := 字段值;  
      for I := 0 to lStrList.Count - 1 do
        if Pos(',',lStrList[i])> 0 then
          lStrList[i] := StringReplace(lStrList[i],',','',[rfReplaceAll]);//用''替换','号
    end;
      

  7.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
        str,str1 : string;
    begin
        str := '1111,2222,3333,4444';
        str1 := stringReplace(str,',',' ');
        ComboBox1.Items.CommaText := str;
    end;
      

  8.   

    这个 可以 
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        ComboBox1: TComboBox;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
    str :string;
    begin
        str := '1,2,3';
        str := stringreplace(str,',',' ',[]);
        combobox1.Items.CommaText := str;
    end;end.