Delphi 获取GUID的方法

在 Delphi 中生成和操作 GUID 的常用方法如下:

1. 基础方法:CreateGUID + GUIDToString‌ 通过系统函数生成原始 GUID 并转换为字符串:

uses SysUtils, ActiveX;

function GenerateGUID: string;
var
  Guid: TGUID;
begin
  CreateGUID(Guid);      // 生成 TGUID 结构体‌:ml-citation{ref="6,8" data="citationList"}
  Result := GUIDToString(Guid); // 转换为字符串(带大括号和连字符)‌:ml-citation{ref="1,6" data="citationList"}
end;

输出示例: {3F2504E0-4F89-11D3-9A0C-0305E82C3301}

2. 快速生成无符号格式‌

通过 CreateClassID 生成并移除格式符号:

uses ComObj;

function GenerateCompactGUID: string;
begin
  Result := CreateClassID;  // 直接生成带大括号的 GUID 字符串‌:ml-citation{ref="3,4" data="citationList"}
  Result := StringReplace(Result, '{', '', [rfReplaceAll]); // 移除大括号‌:ml-citation{ref="4,5" data="citationList"}
  Result := StringReplace(Result, '}', '', [rfReplaceAll]);
  Result := StringReplace(Result, '-', '', [rfReplaceAll]); // 移除连字符‌:ml-citation{ref="4,8" data="citationList"}
end;

‌3. 调用系统 API CoCreateGuid‌

直接使用 Windows API 生成 GUID:

uses ActiveX;

function GenerateViaAPI: string;
var
  Guid: TGUID;
begin
  OleCheck(CoCreateGuid(Guid));  // 调用系统 API‌:ml-citation{ref="3,8" data="citationList"}
  Result := GUIDToString(Guid);
end;

‌4. 高级场景:生成版本 1 GUID‌

通过 TGuidGenerator 类生成特定版本(需 Delphi 10.3+):

uses System.SysUtils, System.Guid;

function GenerateVersion1GUID: string;
var
  Guid: TGuid;
begin
  Guid := TGuidGenerator.NewGuid(TGuidType.gtGuid1); // 版本 1(时间+MAC地址)‌:ml-citation{ref="7" data="citationList"}
  Result := Guid.ToString;
end;

格式化选项‌: ‌

默认格式‌:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}‌

‌紧凑格式‌:移除 {、} 和 - 符号,保留 32 位字符‌

‌自定义处理‌:通过 StringReplace 或字符串截取调整格式‌

‌注意事项‌:

需引用单元:SysUtils、ActiveX、ComObj(根据方法选择)‌

生成效率:CreateGUID 和 CoCreateGuid 性能接近,适用于高频调用‌

唯一性:版本 4(默认)基于随机数,版本 1 基于时间戳和硬件地址‌

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海天胜景

您的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值