Скрипт VB для создания guid на основе созданного времени даты - PullRequest
0 голосов
/ 16 декабря 2011

У меня есть следующий VB Scrtip, который я использую в Excel для генерации GUID.В идеале я хочу, чтобы GUID основывался на дате, созданной не просто случайно.Можно ли как-нибудь изменить этот скрипт для создания GUID на основе даты и времени?

 Private Type GUID
 Data1 As Long
 Data2 As Long
 Data3 As Long
 Data4(8) As Byte
 Private Declare Function CoCreateGuid _
 Lib "ole32.dll" _
 (ByRef pGUID As GUID) As Long

 Private Declare Function StringFromGUID2 _
 Lib "ole32.dll" _
 (ByRef rGUID As Any, _
 ByVal lpstrCLSID As Long, _
 ByVal cbMax As Long) As Long

 Function CreateGUID() As String

 Dim b() As Byte
 Dim BuffSize As Long
 Dim RetVal As Long
 Dim MyGUID As GUID
 BuffSize = 40
 ReDim b(BuffSize * 2) As Byte  
 RetVal = CoCreateGuid(MyGUID)
 RetVal = StringFromGUID2(MyGUID, VarPtr(b(0)), BuffSize)
 CreateGUID = Left$(b, RetVal - 1)
 End Function

Большое спасибо

1 Ответ

0 голосов
/ 16 декабря 2011

Идентификаторы GUID обычно содержат компонент даты / времени, помимо других данных.Если вы хотите, чтобы они не были идентификаторами GUID, вы можете создать любую строку, какую захотите, но вам нужно придумать свой собственный метод предотвращения коллизий, особенно с реальными идентификаторами GUID.

...