一个是字母转化为数字:
 比如A->1,B->2,AB->28
第二个是数字转为字母:
 比如1->A,2->B,27->AA
多谢了。

解决方案 »

  1.   

    function GetMyStrToInt(const s:string):integer;
    var
      i,j,k,t:integer;
    begin
      k:=length(s);
      t:=0;
      fori:=k down to 1 do
      begin
        j:=ord(s[K])-ord(A)+1;
        t:=t*26+j;
      end;
      result:=t;
    end;
      

  2.   

    现成的没有。
    自己编吧。
    比如
    function i2s(i:integer):string;
    beign
      result:=char(i+64);
    end;
      

  3.   

    这相当于26进制的运算。
    我自己因涉及到Excel写过的一个数值到字母的函数,反向的请楼主自己写吧。
    function int2letter(num:integer):string;
    const
      LetterStr='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    var
     i,j:integer;
    begin
      if num<=26 then
        begin
          result:=LetterStr[num];
        end
      else
        begin
          j:=num mod 26;
          i:=num div 26;
          if j=0 then
            begin
              j:=26;
              i:=i-1;
            end;
          result:=int2letter(i)+LetterStr[j];
        end;
    end;此函数效果如下: 28 ->AB
                    288->KB
                    269->JI不知符楼主意否。
      

  4.   

    To : liyangyao970(纳兰容若) 真好,我就不用想逆运算了,你的代码我要了。
      

  5.   

    function GetMyStrToInt(const s:string):integer;
    var
      i,j,k,t:integer;
    begin
      k:=length(s);
      t:=0;
      fori:=k down to 1 do
      begin
        j:=ord(s[K])-ord(A)+1;
        t:=t*26+j;
      end;
      result:=t;
    end;