如何在Livecode或Hypercard中创建UUID(=通用唯一标识符,或GUID =全球唯一标识符,Microsoft说话)?
UUID的目标是在没有中央协调的情况下为信息提供几乎唯一的密钥。
参考
答案 0 :(得分:3)
如果您使用的是Unix(如Linux或MacOS),则可以使用shell()函数调用uuidgen Terminal命令。它应该像
put shell("uuidgen") into theUUID
这有点笨拙(创建一个shell,在其中运行一个命令行应用程序,然后再次退出),但是它可以在较旧的LiveCode版本上运行,并且与shell脚本没有什么不同。< / p>
在HyperCard中,您必须在脚本设置为AppleScript的对象中使用AppleScript,或者使用“do X as AppleScript”命令。不确定AppleScript是否可以本机构建UUID,但如果不能,则可以使用AppleScript来运行shell脚本。 (在SuperCard中不存在shell()函数,它是由SuperCard,IIRC发明的。
如果没有任何帮助,这里是一个描述如何创建标准UUID的规范:http://www.opengroup.org/dce/info/draft-leach-uuids-guids-01.txt它并不特定于任何编程语言。
答案 1 :(得分:1)
在LiveCode 6.1(今天发布)中,您可以使用uuid函数创建一个uuid。类型4随机uuid是默认值,类型3和5基于摘要的uuid也是实现的。
答案 2 :(得分:0)
以下函数创建类型4(随机)UUID:
function getUUID
local tUUIDpattern
local tUUID
local tHexDigits
put "xxxxxxxx-xxxx-4xxx-xxxx-xxxxxxxxxxxx" into tUUIDpattern
put "1234567890abcdef" into tHexDigits
repeat for each char tChar in tUUIDpattern
if tChar = "x" then
put any char of tHexDigits after tUUID
else
put tChar after tUUID
end if
end repeat
return tUUID
end getUUID
答案 3 :(得分:0)
到目前为止(至少在版本6.6.1中)可以使用put uuid(random)
而不使用shell
if the type is empty or random a version 4 (random) UUID is returned. A cryptographic quality pseudo-random number generator is used to generate the randomness.
If the type is md5 a version 3 UUID is returned.
If the type is sha1 a version 5 UUID is returned.