您好,我正在尝试使用 Delphi 中的函数生成三个随机字符,代码如下:
function generate(cantidad: integer): string;
const
letras_mi = 'abcdefghijklmnopqrstuvwxyz';
const
letras_ma = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
const
numeros = '0123456789';
var
finalr: string;
begin
finalr := '';
finalr := finalr + IntToStr(Random(Length(letras_mi)) + 1);
finalr := finalr + IntToStr(Random(Length(letras_ma)) + 1);
finalr := finalr + IntToStr(Random(Length(numeros)) + 1);
Result := finalr;
end;
问题是像 20142 这样的事情我回来了,而我实际上正在等待 3 个字符常量随机变量。
您的代码正在将整数索引值转换为字符串。请注意,您对常量的唯一参考是获取它们的长度。您返回索引而不是字符。
您可以使用生成的整数索引来引用字符串常量中的元素来修复代码。梅森和肯展示了如何做到这一点。
就我个人而言,我会去掉常量并写
Chr(ord('a') + Random(26))
and
Chr(ord('A') + Random(26))
and
Chr(ord('0') + Random(10))
这些字符的序数值早在允许此类代码时就已设计。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)