比如我需要给三个人发短信,就需要在Edit中输入三个手机号码,每个号码用逗号隔开发送的时候是通过循环,一个号码一个号码的发送,就是说怎么从Edit中拆分出这几个号码来?

解决方案 »

  1.   

    就是把一个指定的字符串用指定的分割符号分割成多个子串,放入一个 TStringList 中
    function ExtractStrings(Separators, WhiteSpace: TSysCharSet; Content: PChar;
      Strings: TStrings): Integer;
    比如要把 'abc,defg,hijkl'; 按照逗号','分割开:
    var
      Res: TStringList;
      i, Count: Integer;
    begin
      s := 'abc,defg,hijkl';
      Res := TStringList.Create;
      Count := ExtractStrings([','], [], PChar(s), Res);
      ShowMessage('共分割出 ' + IntToStr(Count) + ' 个子串');
      for i := 0 to (ResCount - 1) do
        ShowMessage(Res.Strings[i]);
      Res.Free;
    end;
      

  2.   

    procedure TForm1.Button2Click(Sender: TObject);
    var
      a:string;
      b:tStringList;
      i:integer;
      Str:String;
    begin
      a:='1 one,2 two,3 three';
      b:=TStringList.Create;
      ExtractStrings([','],[],Pchar(a),b);
      for i:=0 to b.Count-1 do
        begin
          Str:=Str+Copy(b[i],1,1)+',';
        end;
        ShowMessage(Str);
    end;
      

  3.   

    可以这样,比较好理解
    var 
    i :integer;
    S_Temp,S_Lan:string;
    begin
       for i:=0 to length(edit.Text) do
       begin
            S_Temp :=Copy(str,i,1);
            if S_Temp<>',' then
               S_Lan:=S_Lan+S_Temp;
            else
            begin
              所提取的手机号码:=S_Lan
               .....
               S_Lan:=''
            end;
         end;
    end.