gpt4 book ai didi

delphi - 程序卡住生成随机字符串

转载 作者:行者123 更新时间:2023-12-03 19:26:00 26 4
gpt4 key购买 nike

我正在德国站点delphi-treff上学习delphi。

它们提供了生成随机字符串的功能。

https://www.delphi-treff.de/tipps-tricks/object-pascal/strings/zufallstring-generieren/

function RandomString(strlength: integer): string;
var
temp : integer;
begin
randomize;
repeat
temp := random(122); //ggf. erhöhen
if temp in [48..57{0-1}, 65..90{A-Z}, 97..122{a-z}] then
//Kann um beliebige ASCII-Zeichen erweitert werden,
//ggf. den Wert in Random hochsetzen
result := result + Chr(temp);
until length(result) = strlength;
end;


如您在这里看到的:

if temp in [48..57{0-1}, 65..90{A-Z}, 97..122{a-z}] then


他们只将0-1,A-Z和a-z作为字符。

但是我认为我的程序由于该功能而崩溃。

所以我改变了:直到length(result)= strlength;

to:直到length(result)> = strlength;

确实确实有时> strlength。

有人可以解释为什么它更大吗?

它不应该更大,因为一次只能添加1个字符吗?

最佳答案

Result被视为隐式var参数,必须在使用前进行初始化。请参见What is the default value of 'Result' in Delphi?

在这种情况下,未初始化的Result参数将导致长度溢出。

另一个问题Randomize只能在程序启动时被调用一次。

关于delphi - 程序卡住生成随机字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38062508/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com