Delphi中数字和字母的转换
我正在尝试将数字从旋转编辑转换为字母表中的字母。以下是我到目前为止的情况:Delphi中数字和字母的转换,delphi,Delphi,我正在尝试将数字从旋转编辑转换为字母表中的字母。以下是我到目前为止的情况: procedure TForm2.btnRepeatClick(Sender: TObject); var iNumLetters, iCounter, i: Integer; begin iNumLetters := sedNum.Value; iCounter := 0; repeat redOut.Lines.Add(Chr(iCounter)); Inc(iCounter);
procedure TForm2.btnRepeatClick(Sender: TObject);
var
iNumLetters, iCounter, i: Integer;
begin
iNumLetters := sedNum.Value;
iCounter := 0;
repeat
redOut.Lines.Add(Chr(iCounter));
Inc(iCounter);
until (iCounter = iNumLetters);
end;
现在我得到一个错误
富编辑行插入错误
Chr
使用常用的字符编码,将整数值转换为具有该序数值的字符。那不是你想要的。字母A
未使用序数值0进行编码
您希望将0转换为A,将1转换为B,依此类推。而不是
Chr(iCounter)
你想要Chr(iCounter+ord('A'))
。请注意,这取决于字母被编码为与字母表顺序相同的序数值 Chr
使用常用的字符编码,将整数值转换为具有该序数值的字符。那不是你想要的。字母A
未使用序数值0进行编码
您希望将0转换为A,将1转换为B,依此类推。而不是
Chr(iCounter)
你想要Chr(iCounter+ord('A'))
。请注意,这取决于字母被编码为与字母表顺序相同的序数值 假设sedNum.Value
不超过26,可以执行以下操作:
procedure TForm2.btnRepeatClick(Sender: TObject);
var
iNumLetters, iCounter: Integer;
begin
iNumLetters := sedNum.Value;
for iCounter := 0 to iNumLetters-1 do
redOut.Lines.Add(Char(Ord('A') + iCounter));
end;
假设
sedNum.Value
不超过26,可以执行以下操作:
procedure TForm2.btnRepeatClick(Sender: TObject);
var
iNumLetters, iCounter: Integer;
begin
iNumLetters := sedNum.Value;
for iCounter := 0 to iNumLetters-1 do
redOut.Lines.Add(Char(Ord('A') + iCounter));
end;
怎么样
function TForm2.numberToString(number: Integer): String;
begin
Result := '';
if (number < 1) or (number > 26) then
Exit;
Result := 'abcdefghijklmnopqrstuvwxyz'[number];
end;
函数TForm2.numberToString(number:Integer):字符串;
开始
结果:='';
如果(数量<1)或(数量>26),则
出口
结果:='abcdefghijklmnopqrstuvwxyz'[number];
结束;
怎么样
function TForm2.numberToString(number: Integer): String;
begin
Result := '';
if (number < 1) or (number > 26) then
Exit;
Result := 'abcdefghijklmnopqrstuvwxyz'[number];
end;
函数TForm2.numberToString(number:Integer):字符串;
开始
结果:='';
如果(数量<1)或(数量>26),则
出口
结果:='abcdefghijklmnopqrstuvwxyz'[number];
结束;
你说的“字母表”是什么意思?如果你指的是A、B、C等,那么你显然不会明白:你从Chr(0)
开始,这不是A。如果你指的是#0、#1、#2等,那么事情就变得棘手了。这两种可能性需要不同的方法来解决问题。你所说的“字母表”是什么意思?如果你指的是A、B、C等,那么你显然不会明白:你从Chr(0)
开始,这不是A。如果你指的是#0、#1、#2等,那么事情就变得棘手了。这两种可能性需要不同的方法来解决问题。