Edit控件中输入一个字符串用来添加到数据库表中一列,字符串比如'5*12.5+3*15+5*12.5,4*7.5+3*10+4*7.5',怎样能在添加时找出其中最大的数字,比如这个字符串中的15,请大家帮忙,多谢

解决方案 »

  1.   

    把可能出现的运算符都转换为统一的分隔符
    直接导入到一个TStringList中,也可以用数组
    循环找出最大值
    参考代码
    var
      s: String;
      sl: TStringList;
      i: Integer;
      fMax: Double;
    begin
      s := '5*12.5+3*15+5*12.5,4*7.5+3*10+4*7.5';
      sl := TStringList.Create;
      try
        s := StringReplace(s, '*', ',', [rfReplaceAll]);
        s := StringReplace(s, '+', ',', [rfReplaceAll]);
        //...
        sl.DelimitedText := s;
        fMax := StrToFloatDef(sl[0], 0);
        for i := 1 to sl.Count - 1 do
        begin
          if StrToFloatDef(sl[i], 0) > fMax then
            fMax := StrToFloatDef(sl[i], 0);
        end;
        ShowMessage(FloatToStr(fMax));
      finally
        sl.Free;
      end;