top
Loading...
利用GUID防止重復隨機數的出現
什么是GUID?GUID是Globally Unique IDentifier的縮寫.由一個特殊的算法來產生這些128位的數,并保證不產生重復的GUID—重復的可能性當然存在,但有太多可用的數了,因此算法特別防止產生重復的數,這種情況你一生都不會看到. ActiveX控件都有一個用于相互區別的GUID.你如何在自己的程序中使用GUID呢? 例如,當一個數據庫的每個條目都需要由一個唯一的鍵值時.下面的代碼將給你一個答案:
向窗體frmTest中放置一個名為cmdGUID的按鈕和一個名為txtGUID的文本框,加入一下代碼:
Option Explicit
Private Type GUID
Data1 As Long
Data2 As Long
Data3 As Long
Data4(8) As Byte
End Type
Private Declare Function CoCreateGuid Lib "ole32.dll" (pguid As GUID) As Long
Private Declare Function StringFromGUID2 Lib "ole32.dll"(rguid As Any,ByVal lpstrClsId As Long,ByVal cbMax As Long) As Long

Private Function GUIDGen() As String
Dim uGUID As GUID
Dim sGUID As String
Dim bGUID() As Byte
Dim lLen As Long
Dim RetVal As Long
lLen = 40
bGUID = String(lLen, 0)
CoCreateGuid uGUID ’把結構轉換為一個可顯示的字符串
RetVal = StringFromGUID2(uGUID, VarPtr(bGUID(0)), lLen)
sGUID = bGUID
If (Asc(Mid$(sGUID, RetVal, 1)) = 0) Then RetVal = RetVal - 1
GUIDGen = Left$(sGUID, RetVal)
End Function

Private Sub cmdGUID_Click()
txtGUID.Text = GUIDGen
End Sub

運行程序.
每次點擊按鈕,文本框中都會出現一個不同的數值. 你可能要點上無數年才會看到一個重復的數值.
作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗