如  beginday;endday;daye
要求把它分开取出 
  
str1:=beginday;
str2:=endday;
str3:=daye;
//----------
 如     beginday;endday;daye;asd;asdf;aa
str1:=beginday;
str2:=endday;
str3:=daye;
str4:=asd;
str5:=asdf;
str6:=aa;

解决方案 »

  1.   

    procedure SplitString(const Division, Source: string; Strings: TStrings);
    var
      Temp: string;
      i: Integer;
    begin
      Temp := Source;
      i := Pos(Division, Source);
      while i <> 0 do
      begin
        Strings.Add(Copy(Temp, 0, i - 1));
        Delete(Temp, 1, i);
        i := Pos(Division, Temp);
      end;
      Strings.Add(Temp);
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      SplitString(';', 'beginday;endday;daye;asd;asdf;aa',Memo1.Lines);
    end;
      

  2.   

    定义一字符串str:string;把beginday;endday;daye;asd;asdf;aa
    存进去,用循环检查这字符串,如str[1],str[2]看是不是';',如果是,把前面的存起来
    ,最后,把存的结果相减
      

  3.   

    var
      vResultStrings:TStrings;
      vOldStr:String;
      i:integer;
    begin
      vOldStr:='adf;gwgwerg;aegwegweg;egege';  //你要分开的源字符串
      vResultStrings:=TStringList.Create;
      vResultStrings.Text:=StringReplace(vOldStr,';',#13#10,[rfReplaceAll, rfIgnoreCase]); 
       //把';'换成换行符放到Tstrings里面,就会自动分成一个个字符串了。
      for i:=0 to vResultStrings.Count -1 do      //显示出来而已
        ShowMessage(vResultStrings[i]);