大虾们:
   有没有简单的方法可以把用“,”分隔的字符串分开并作为一个字段?如
  字符串1,2,3,4,5,67,89
  怎样把它分开成为数据库的字段如
    字段1 字段2 字段3 字段4 字段5 字段6 字段7
      1     2     3    4      5     67    89

解决方案 »

  1.   

    fieldbyname('字段1').asstring:=copy('1,2,3,4,5,67,89',1,1)
      

  2.   

    fieldbyname('字段2').asstring:=copy('1,2,3,4,5,67,89',2,1);
    哈哈,照猫画虎,学楼上的。
      

  3.   

    var
      YourText:TStringlist;
      SS:String;
      i:integer  YourText:=TStringlist.Creat();
      YourText.delimiter:=',';
      YourText.delimitedText:='1,2,3,4,5,45,50'
      SS:='';
      for i:=0 to YourText.Count-1 do
        SS:=SS+YourText[i];
      FieldByName('你的字段').AsString:=SS;
    //  SS的值是  '123454550'
        
      

  4.   

    呵呵,忘了,上面最好在最后加一句
      
      YourText.Free;
      

  5.   

    var 
    ...........//省略了
      S := '1,2,3,4,5,45,50';
    begin
      while pos(',',s)> 0 do
    begin
       xxx := copy(s,pos(',',s)+1,length(s)-pos(',',s));
       delete(s,pos(',',s)+1,length(s)-pos(',',s));
       s1 := s ;//这里没有去掉','
       memo1.Lines.Add(s1);
       s := xxx;
    end;
      

  6.   


    function  GetString(const str,ctlstr : string): Tstrings;
    var
    strl : Tstrings;
    i : integer;
    s : string;
    substr : string;
    begin
      s := str;
      if length(trim(s)) = 0 then
      exit;
      strl := Tstringlist.Create;
      i := pos(ctlstr,S);
      while i > 0 do
        begin
        substr := copy(s,1,i-1);
          strl.Add(substr);
          Delete(S,1,i);
          i := pos(ctlstr,s);
        end;
      result := strl;
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
    str : string;
    i : integer;
    strl : Tstrings;
    begin
    str := '1234#4567#3456#2345#';
    strl := Tstringlist.Create;
    Strl := Getstring(str,'#');
    for i := 0 to strl.Count - 1 do
      begin
        showmessage(strl.Strings[i]);
      end;end;
      

  7.   

    procedure StrtoStrList(Value: string; var Target: TStrings);
    var
      iStart: integer;
      iEnd: integer;
    begin
      iStart:= 1;
      repeat
        iEnd:= PosEx(',', Value, iStart);
        if iEnd = 0 then
        begin
          Target.Add(Copy(Value, iStart, Length(Value)));
          break;
        end;
        Target.Add(Copy(Value, iStart, iEnd - iStart));
        iStart:= iEnd + 1;
      until istart <=0;
    end;
    结果会把Value按','分隔放入Target