javascript - 将 Javascript 代码转换为 Delphi

标签 javascript delphi math

我正在尝试将 javascript 代码转换为 delphi,但我失败了......

这是javascript代码:

 /* generate random progress-id */
        var uuid = "";
        var i;
        for (i = 0; i < 32; i++) {
            uuid += Math.floor(Math.random() * 16).toString(16);
        }

这是我在 delphi 中的尝试:

function uid :string  ;
var
i :integer;
begin

for I := 0 to 31 do  begin

result := result + inttostr(floor(random * 16));
end;

end;

这是java脚本代码的结果

a638aa8f74e2654c725fd3cdcf2927d3

我对delphi的了解有限,所以我不知道该怎么做..

我希望看到一些帮助并从中学习。

最佳答案

从字面上看,这是函数在 delphi 中的样子:

function uid: String;
var
  i: Integer;
begin
  for i := 0 to 31 do
    Result := Result + IntToHex(Random(16), 1);
end;

如果您需要小写的“id”- 使用AnsiLowerCase 函数。

编辑

为了正确起见,不推荐使用上面的自制方法 - 它只是 javascript 片段的字面翻译。它可能会导致碰撞(并且会)。

推荐以下功能:

function uid: String;
var
  myGuid: TGUID;
begin
  if Succeeded(CreateGUID(myGUID)) then
    Result := Format('%0.8X%0.4X%0.4X%0.2X%0.2X%0.2X%0.2X%0.2X%0.2X%0.2X%0.2X',
      [myGUID.D1, myGUID.D2, myGUID.D3,
      myGUID.D4[0], myGUID.D4[1], myGUID.D4[2], myGUID.D4[3],
      myGUID.D4[4], myGUID.D4[5], myGUID.D4[6], myGUID.D4[7]]) else
    {TODO: some error processing - something bad happened}
end;

上面关于小写“id”的通知在这里也有效。

关于javascript - 将 Javascript 代码转换为 Delphi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25463160/

相关文章:

mysql - SQL查找属于圆的坐标

javascript - 从方位获取像素位置

database - 什么是 "caHide, caNone"数据库等效项?

javascript - AngularJS 1.3.8 使用多个 Controller ,第二个 Controller 不工作

javascript - 使用 Jest 为异步函数编写测试

javascript - 使 .load 在没有包装器的情况下返回

arrays - 使用文本文件和数组(需要解释)

delphi - 如何旋转TShape

javascript - 为什么 1/0=Infinity 和 1/-0=-Infinity

javascript - 如何在 JavaScript 中将 .txt 文件中的数据保存到数组中?