Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi中数字和字母的转换_Delphi - Fatal编程技术网

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等,那么事情就变得棘手了。这两种可能性需要不同的方法来解决问题。