Delphi用for循环创建字母

问题描述

您在Excel中知道列名称是字母。当到达Z时,它将继续使用AA-AB-AC。是否可以在Delphi XE7 + for循环中实现类似的功能?

我尝试过:

var
i:integer;
str:string;
begin
str:='a';
for i := 0 to 26-1 do
begin
inc (str,1);
memo1.Lines.Add(str);
end;

但它返回了:

[dcc32 Error] FBarkodsuzIndesignVerisiOlustur.pas(249): E2064 Left side cannot be assigned to

我认为那是因为str不是整数。

我可以使用此功能将数字转换为字母:

function numberToString(number: Integer): String;
begin
    Result := '';
    if (number < 1) or (number > 26) then
        Exit;

    Result := 'abcdefghijklmnopqrstuvwxyz'[number];
end;

但是我不知道当超过26时如何创建AA之类的字母。

同样采用以下方法,它会创建26个字母,但是当它超过26个时,它将开始使用方括号之类的字符:

  for i := 0 to 27-1 do
  begin
   memo1.Lines.Add(Char(Ord('a') + i));
  end;

输出:

a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{

到达Z时,它将继续显示为“ AA”,“ BB”,“ CC”,依此类推,例如Excel会创建列名。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)