首页 > 其他分享 >delphi GUID相关操作

delphi GUID相关操作

时间:2024-02-06 14:11:35浏览次数:28  
标签:GUID1 delphi Lines System TGUID 操作 D4 GUID

GUID相关操作

代码

procedure TForm1.Button1Click(Sender: TObject);
var
  GUID1, GUID2: TGUID;
begin
  //创建GUID
  if CreateGUID(GUID1) <> 0 then
     Memo1.Lines.Add('创建失败');
  //转换为字符串
  Memo1.Lines.Add(GUIDToString(GUID1));
  //分段输出
  Memo1.Lines.Add(Format('D1 %x', [GUID1.D1]));
  Memo1.Lines.Add(Format('D2 %x', [GUID1.D2]));
  Memo1.Lines.Add(Format('D3 %x', [GUID1.D3]));
  Memo1.Lines.Add(Format('D4 %x%x', [GUID1.D4[0], GUID1.D4[1]]));
  Memo1.Lines.Add(Format('D4 %x%x%x%x%x%x', [GUID1.D4[2], GUID1.D4[3], GUID1.D4[4], GUID1.D4[5], GUID1.D4[6], GUID1.D4[7]]));
  //将字符串转换为GUID
  GUID2 := StringToGUID('{00000000-0000-0000-0000-000000000000}');
  //比较是否相等
  if IsEqualGUID(GUID1, GUID2) then
    Memo1.Lines.Add('相等')
  else
    Memo1.Lines.Add('不相等');
end;

方法

System.SysUtils.CreateGUID

function CreateGUID(out Guid: TGUID): HResult;

unit

System.SysUtils

GUID 设置为新创建的全局唯一标识符。

Windows 上,CreateGUID 调用 Windows API CoCreateGuid

MAC OS 上,GUID 是使用 libc 运行时的 uuid_generate_time 函数生成的,该函数使用网卡 MAC 地址(如果可用)。

System.SysUtils.GUIDToString

function GUIDToString(const Guid: TGUID): string;

unit

System.SysUtils

GUID 转换为字符串。

如果成功,将返回所请求的 GUID 的字符串。如果失败,则会引发 EConvertError异常。

System.SysUtils.IsEqualGUID

function IsEqualGUID(const Guid1, Guid2: TGUID): Boolean;

unit

System.SysUtils

表示两个 TGUID 值是否相同。如果值相等,则返回 True

System.SysUtils.StringToGUID

function StringToGUID(const S: string): TGUID;

unit

System.SysUtils

将字符串转换为 TGUID 数据结构。

如果成功,则返回请求的 GUID。如果失败,则会引发 EConvertError异常。

System.TGUID

TGUID = record

unit

System

TGUID 是全局唯一标识符的结构化形式。

具有以下形式:

['{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}']

其中每个x是一个十六进制数字。可以通过在代码编辑器中按 CTRL+SHIFT+G 来生成 GUID。

TGUID 提供对 GUID 的结构化访问:

  • 前 8 个十六进制数字映射 D1.
  • 接下来的 4 个十六进制数字映射 D2.
  • 接下来的 4 个十六进制数字映射 D3.
  • 接下来的 4 个十六进制数字映射 D4 中的前 2 个字节。
  • 最后 12 个十六进制数字映射 D4 中的剩余 6 个字节。

标签:GUID1,delphi,Lines,System,TGUID,操作,D4,GUID
From: https://www.cnblogs.com/txgh/p/18009613

相关文章

  • SQL数据库入门04:数据查询操作
      本文介绍基于MicrosoftSQLServer软件,实现数据库表中多种数据查询方法的具体操作。(数据库基础(四):数据查询)  系列文章中示例数据来源于《SQLServer实验指导(2005版)》一书。依据本系列文章的思想与对操作步骤、代码的详细解释,大家用自己手头的数据,可以将相关操作与分析过程......
  • 统信UOS操作系统上禁用IPv6
    原文链接:统信UOS操作系统上禁用IPv6hello,大家好啊!继之前我们讨论了如何在麒麟KYLINOS上禁用IPv6之后,今天我要给大家带来的是在统信UOS操作系统上禁用IPv6的方法。IPv6是最新的网络通信协议,但在某些特定的网络环境或测试场景中,可能需要禁用IPv6以确保兼容性或满足其他需求。本文将介......
  • 招募操作系统技术合伙人
    LAXCUS分布式操作系统是一种面向算力的新型操作系统,AI大潮下,算力即生产力,LAXCUS服务以AI为主的大规模计算领域,英伟达已经把住了硬件算力入口,我们瞄准了软件算力。现招募以下岗位的技术大牛:1.技术合伙人:精通网络、Linux全栈,c、c++,参与团队的技术和管理工作,定制产品路线,待遇:薪酬+股......
  • Git常用操作(IDEA界面)压缩提交到最后一次
    这是初始状态提交了三次后将feat:提交1到feat:提交3合并成一次提交记录按住Shift选中feat:提交1到feat:提交3右键选择压缩提交编辑提交信息点击确定最后的压缩提交后的内容和未压缩的是一致的提示:进行操作时请注意备份数据!!!防止操作失败丢失......
  • PowerShell中,可以使用特定的命令来执行关机、重启和休眠等操作
    PowerShell中,可以使用特定的命令来执行关机、重启和休眠等操作。以下是这些操作的常用命令及其简要说明:关机(Shutdown)Stop-Computer用于关闭本地或远程计算机。示例:Stop-Computer若要强制关闭(不等待应用程序响应),可以添加 -Force 参数:Stop-Computer-Force重启(Re......
  • redis操作技巧
    1.sadd和srem的使用(Set)redisAdapter.sadd(key1,value1);jedisAdapter.srem(key1,value1);2.hmsetStr和hgetAll和hgetStr的使用 publicvoidsaveToRedis(Stringkey,MapfieldValue){if(!CollectionUtils.isEmpty(fieldValue)){jedisAdapter.hmsetStr(key,fiel......
  • 打开java语言世界通往字节码世界的大门——ASM字节码操作类库
    一、ASM介绍1、ASM是什么ASM是一个通用的Java字节码操作和分析框架。它可以用于修改现有类或直接以二进制形式动态生成类。ASM提供了一些常见的字节码转换和分析算法,可以从中构建定制的复杂转换和代码分析工具。ASM提供了与其他Java字节码框架类似的功能,但侧重于性能。由于它的......
  • APP在申请敏感权限时,应同步说明权限申请的使用目的,包括但不限于申请权限的名称、服务
    一、概述华为APP应用市场反馈问题:(目前是华为审核特有的问题)APP在申请敏感权限时,应同步说明权限申请的使用目的,包括但不限于申请权限的名称、服务的具体功能、用途;告知方式不限于弹窗、蒙层、浮窗、或者自定义操作系统权限弹框等验证了小米、vivo、oppo、应用宝,只......
  • SQL数据库入门03:数据库表的完整性约束、索引与视图的操作
      本文介绍基于MicrosoftSQLServer软件,实现数据库表完整性约束、索引与视图的创建、编辑与删除等操作的方法。(数据库基础(三):完整性约束、索引、视图)  系列文章中示例数据来源于《SQLServer实验指导(2005版)》一书。依据本系列文章的思想与对操作步骤、代码的详细解释,大家用......
  • 初步上手Git软件及GitHub平台:基本操作方法
      本文介绍Git软件与GitHub平台的基本内容、使用方法与应用场景等。目录1初步介绍2使用方法2.1GitHub配置2.2Git配置2.3代码上传至GitHub1初步介绍  首先,什么是GitHub与Git?为什么我们要运用这些工具?  首先从GitHub说起。如果大家参加过数学建模比赛,或许都经历过这......