比入有 a:='05,07,03,01'
写个什么样的函数可以 a:='01,03,05,07'

解决方案 »

  1.   

    var s:TStringList;
        a:string;
    begin
      a:='05,07,03,01';
      s:=TStringList.Create;
      a:=StringReplace(a,',',#13#10,[rfReplaceAll]);
      s.Text:=a;
      s.Sort;
      a:=StringReplace(s.Text,#13#10,',',[rfReplaceAll]);
      ShowMessage(a);
      s.Free;
    end;
      

  2.   

    var
      sl :Tstringlist;
      a :string;
    begin
      a:='05,07,03,01';  sl := TstringList.Create;
      sl.Delimiter:=',';
      sl.DelimitedText := a;
      sl.Sort;
      a:=sl.DelimitedText;
      showmessage(a);end;
      

  3.   

    function SortStringList(sData: String): String;
    var
      AList : TStrings;
      BList : TStrings;
      iLoop : Integer;
      iIndex: Integer;
    begin
      AList := TStringList.Create;
      try
        AList.Delimiter := ',';
        AList.DelimitedText := sData;
        BList := TStringList.Create;
        try
          for iLoop := 0 to AList.Count - 1 do
          begin
            iIndex := 0;
            while iIndex < iLoop do
            begin
              if AList.Strings[iLoop] < AList.Strings[iIndex] then break;
              Inc(iIndex);
            end;
            BList.Insert(iIndex, AList.Strings[iLoop]);
          end;
          sData := BList.DelimitedText;
        finally
          BList.Free;
        end;
      finally
        AList.Free;
      end;
      Result := sData;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      ShowMessage (SortStringList('05,07,03,01'));
    end;
      

  4.   

    function SortStringList(sData: String): String;
    var
      AList : TStringList;
    begin
      AList := TStringList.Create;
      try
        AList.Delimiter := ',';
        AList.DelimitedText := sData;
        AList.Sort;
        sData := AList.DelimitedText;
      finally
        AList.Free;
      end;
      Result := sData;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      ShowMessage (SortStringList('05,07,03,01'));
    end;