VB程序员博客
如何产生由数字和英文字母组成的随机序列号
比如:
1WDR45E5I
3R5JIRWWE3B33
4RTY464FERLJT8I
这样一个序列,主要是用在产品的序列号上,一个产品用一个序列号,长度固定或可变都可以,要能产生无数个随机序列号.请各位大侠帮帮忙,小弟VB只懂皮毛.
把你要出现的字母放入数组中,用RND得到数组下标。即可。
在调用 Rnd 之前,先使用无参数的 Randomize 语句初始化随机数生成器,该生成器具有根据系统计时器得到的种子。
为了生成某个范围内的随机整数,可使用以下公式:
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
这里,upperbound 是随机数范围的上限,而 lowerbound 则是随机数范围的下限。
像这种号一般都没有O(噢)
Private Sub Command1_Click()
Dim s As String, t As String
Dim i As Long, nlen As String, n As Long
s = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ "
nlen = 16 '计算16位长度的随机串
For i = 1 To nlen
n = CLng(Rnd * 35 + 1)
t = t & Mid(s, n, 1)
Next
Debug.Print t
Print t
End Sub
…………
关键还是要有好的随机生成规则
由yachong(蚜虫) 修改:
Private Sub Command1_Click()
Dim s As String, t As String
Dim i As Long, nlen As String, n As Long
Randomize
s = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ "
nlen = 16 '计算16位长度的随机串
For i = 1 To Rnd * 35 + 1
n = CLng(Rnd * 35 + 1)
t = t & Mid(s, n, 1)
Next
Print t
End Sub
楼上的方法不错..
来转转
用日期序列+时间序列。。
DateSerial+TimeSerial
换个思路行不….?
序列号我直接使用顺序生成,不就行了….也就是生成流水号,像RMB一样
至于贴到你的产品上…….你的产品不会总是顺序卖出去吧??????
Option Explicit
Private Declare Function CoCreateGuid Lib "ole32.dll " (pGuid As GUID) As Long
Private Declare Function StringFromGUID2 Lib "ole32.dll " (pGuid As GUID, ByVal PointerToString As Long, ByVal MaxLength As Long) As Long
Private Const GUID_OK As Long = 0
Private Type GUID
Guid1 As Long
Guid2 As Integer
Guid3 As Integer
Guid4(0 To 7) As Byte
End Type
Public Function CreateGUIDKey() As String
Const GUID_LENGTH As Long = 38
Dim udtGUID As GUID
Dim strFormattedGUID As String
Dim lngResult As Long
lngResult = CoCreateGuid(udtGUID)
If lngResult = GUID_OK Then
strFormattedGUID = String$(GUID_LENGTH, 0)
StringFromGUID2 udtGUID, StrPtr(strFormattedGUID), GUID_LENGTH + 1
Else
strFormattedGUID = " "
End If
CreateGUIDKey = strFormattedGUID
End Function
调用:
dim code as string
code=CreateGUIDKey
code就是全球唯一序列号了,如果不要里面的“{”和“-”,自己替换成空即可。
好家伙,收藏了…….
嗯,收藏……..
昨天晚上还为了怎么生成uid犯难呢
呵呵,收藏
Mark
收藏
GUID
MD5
mark
藏
refer to:
http://www.vbaccelerator.com/home/VB/Tips/Create_GUIDs/article.asp