如何在Livecode(或HyperTalk)中创建UUID(GUID)?

如何在Livecode或Hypercard中创建一个UUID(=通用唯一标识符,或GUID =全局唯一标识符,微软说)?

UUID的目标是在没有中央协调的情况下给出几乎独特的信息键。

参考

  • 4型UUID(维基百科)
  • 如何在JavaScript中创建一个GUID
  • GUID和UUID有什么区别?

  • 在LiveCode 6.1(今天发布)中,您可以使用uuid函数创建uuid。 类型4随机uuid是默认类型,基于类型3和5的摘要uuid也被实现。


    如果您使用的是Unix(如Linux或MacOS),则可以使用shell()函数调用uuidgen终端命令。 它应该是类似的

    put shell("uuidgen") into theUUID
    

    这有点笨重(创建一个shell,在其中运行命令行应用程序,然后再次退出),但可以在较旧的LiveCode版本上运行,与shell脚本没有什么不同。

    在HyperCard中,您必须使用AppleScript,或者将脚本设置为AppleScript的对象,或使用“将X作为AppleScript”命令。 不确定AppleScript是否可以本机构建UUID,但如果不能,AppleScript可以用来运行shell脚本。 (HyperCard中不存在shell()函数,它是由SuperCard,IIRC发明的)。

    如果没有任何帮助,下面是一个规范,描述如何创建一个标准的UUID:http://www.opengroup.org/dce/info/draft-leach-uuids-guids-01.txt它不是特定于任何编程语言。


    以下函数创建一个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
    
    链接地址: http://www.djcxy.com/p/91445.html

    上一篇: How do I create a UUID (GUID) in Livecode (or HyperTalk)?

    下一篇: DocumentDB auto generated ID: GUID or UUID? Which variant?