字符串变量= 32*3*10*2,11*3*15*1 可能为11*3*15*11.逐个拆分成个数字,如果个数不为4、8、12即退出
  (如拆分成32 3 10 2 11 3 15 1)2.将每4个看作一段,前面3个数字相乘放到一个值中。
  (如上面32乘以3乘以10)

解决方案 »

  1.   

    at:=TStringList.Create;
    ASource:= PChar(字符串变量);
    ExtractStrings([','],[],ASource,at);
    先拆分成两段
    at.Strings[0]就是32*3*10*2
    at.Strings[1]就是11*3*15*1
    再用同样的方法分成4个
    at2:=TStringList.Create;
    ASource:= PChar(字符串变量);
    ExtractStrings(['*'],[],ASource,at2);
    at2.Strings[0]// 32
    at2.Strings[1]// 3
    at2.Strings[2]// 10
    at2.Strings[3]// 2
    然后再自已做一下判断接分
      

  2.   

    就是以*为分隔符拆分,然后自己处理就是了
    除了ExtractStrings方法,还可以var
      list:TStringList;
    begin
      list := TStringList.Create;
      list.Delimiter := '*';
      list.DelimitedText := '32*3*10*2,11*3*15*1';
      ShowMessage(list.Text);
      //这样,list中就是拆分后的字符列表
    end;
      

  3.   

    略微修正一下,先把逗号替换成星号
    var
      list:TStringList;
    begin
      list := TStringList.Create;
      list.Delimiter := '*';
      list.DelimitedText := StringReplace('32*3*10*2,11*3*15*1', ',', '*', [rfReplaceAll]);
      ShowMessage(list.Text);
      //这样,list中就是拆分后的字符列表
      

  4.   

    dinoalex请问一下delphi下正则有没有自带的,TPerlRegEx这个要不要去下载,又去哪里下载,指导一下,复杂的情况还得用正则