高分求两个函数!

Knight_yin 2003-12-02 10:29:05
一个是字母转化为数字:
比如A->1,B->2,AB->28
第二个是数字转为字母:
比如1->A,2->B,27->AA
多谢了。
...全文
27 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wave_f 2003-12-15
  • 打赏
  • 举报
回复
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;
ezlz 2003-12-15
  • 打赏
  • 举报
回复
楼主提前过年了? :(
xiaoqiang123 2003-12-03
  • 打赏
  • 举报
回复
二楼和四楼说得好
ezlz 2003-12-03
  • 打赏
  • 举报
回复
楼主度假了? :(
ezlz 2003-12-02
  • 打赏
  • 举报
回复
To : liyangyao970(纳兰容若)

真好,我就不用想逆运算了,你的代码我要了。
hongqi162 2003-12-02
  • 打赏
  • 举报
回复
up
akwa 2003-12-02
  • 打赏
  • 举报
回复
思路不难,懒!!!
liyangyao970 2003-12-02
  • 打赏
  • 举报
回复
二楼和四楼一正一反正好符全楼主的要求啊
楼主说话,还有佬
ezlz 2003-12-02
  • 打赏
  • 举报
回复
这相当于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

不知符楼主意否。
flyforlove 2003-12-02
  • 打赏
  • 举报
回复
现成的没有。
自己编吧。
比如
function i2s(i:integer):string;
beign
result:=char(i+64);
end;
liyangyao970 2003-12-02
  • 打赏
  • 举报
回复
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;
liyangyao970 2003-12-02
  • 打赏
  • 举报
回复
呵呵!
快给我分啊,
开玩笑了.
我也是初学者,大家共同进步哟!

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧