Как вы знаете, имена столбцов в 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.
Также с приведенным ниже подходом он отлично создает 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 создает имена столбцов.