Livecode または Hypercard で UUID (= Universally Unique Identifier、または GUID = Globally Unique Identifier、Microsoft が話す) を作成するにはどうすればよいですか?
UUID の目的は、中央の調整なしに、情報の断片に事実上一意のキーを与えることです。
参考文献
Livecode または Hypercard で UUID (= Universally Unique Identifier、または GUID = Globally Unique Identifier、Microsoft が話す) を作成するにはどうすればよいですか?
UUID の目的は、中央の調整なしに、情報の断片に事実上一意のキーを与えることです。
参考文献
Unix (Linux や MacOS など) を使用している場合は、shell() 関数を使用して uuidgen ターミナル コマンドを呼び出すことができます。それは次のようなものでなければなりません
put shell("uuidgen") into theUUID
これは少し手間がかかりますが (シェルを作成し、その中でコマンド ライン アプリケーションを実行してから、再度終了します)、古い LiveCode バージョンでも動作し、シェル スクリプトが行うこととそれほど違いはありません。
HyperCard では、スクリプトが AppleScript に設定されているオブジェクトで、または「do X as AppleScript」コマンドを使用して、AppleScript を使用する必要があります。AppleScript が UUID をネイティブに構築できるかどうかはわかりませんが、構築できない場合は、AppleScript を使用してシェル スクリプトを実行できます。(shell() 関数は HyperCard には存在しません。SuperCard、IIRC によって発明されました)。
どれも役に立たない場合のために、標準の UUID を作成する方法を説明する仕様を次に示します。言語。
LiveCode 6.1 (本日リリース) では、uuid 関数を使用して uuid を作成できます。タイプ 4 のランダム uuid がデフォルトで、タイプ 3 および 5 のダイジェスト ベースの uuid も実装されています。
次の関数は、タイプ 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