GUID это уникальный 128 битный идентификатор, аббревиатура расшифровывается как
Globally Unique Identifier. Предназначен для однозначной идентификации какого-либо программного объекта, сервиса, интерфейса.
Широко применяется например в Windows реестре для однозначной идентификации веток реестра, объектов Windows, в технологиях COM, OLE, DCOM. В тексте
GUID обычно записывается в следующем формате:
{0F581A51-E8A0-4224-BFB4-C2F1CFAE3D45}
Теоретически алгоритм формирования глобального уникального идентификатора не гарантирует того, что два сгенерированных идентификатора всегда будут уникальными, но на практике вероятность такого события стремится к нулю.
В
Delphi в модуле
System определен тип для
GUID в следующем виде:
TGUID = packed record
D1: LongWord;
D2: Word;
D3: Word;
D4: array[0..7] of Byte;
end;
Для генерации GUID можно воспользоваться функцией CoCreateGuid из модуля ActiveX. Для перевода сгенерированного GUID в строку можно воспользоваться функцией GUIDToString из модуля SysUtils. В результате будет получен текстовый формат GUID, описанный выше.
Еще одно из возможных применений
GUID это формирование уникальных имен файлов. Для этого целесообразно убрать из текстового формата
GUID фигурные скобки и символы тире. Ниже приведена функция, которая генерирует
GUID в двух вариантах. В стандартном текстовом формате и в упрощенном формате без дополнительных форматирующих символов в виде:
0F581A51E8A04224BFB4C2F1CFAE3D45
uses SysUtils, ActiveX;
function GetGUIDStr(Simple: boolean=false): string;
var GUID: TGUID;
begin
Result:='';
if CoCreateGuid(GUID) = 0 then
Result := GUIDToString(GUID);
if Simple then
begin
Result:=StringReplace(Result,'{','',[]);
Result:=StringReplace(Result,'}','',[]);
Result:=StringReplace(Result,'-','',[rfReplaceAll]);
end;
end;
Смотрите также:
Оставьте свой комментарий
Вы должны быть авторизированны, чтобы оставить комментарий.