本类共有 867 篇文章,今日更新 0

生成注册码前的近乎唯一的数字字符串的方法

[ 来源:http://www.91now.com/down/ | 作者: | 时间:2007-5-18 17:33:43 | 浏览: 人次 ]


Function Key1(Str)’str--注册内容 
  Dim I,A ’A--生成注册码之前的数字字符串 
  For I = 1 To Len(Str) ’ 
    A = A & Abs(Asc(Mid(Str,I,1))) 
  Next 
’上面的循环是将注册内容中的所有内容转换成ANSI字符串 
  Do 
    If Len(A) > 12 Then 
        A = Key2(A) ’调用函数key2来缩短生成注册码之前的长度 
    Else 
        Exit Do 
    End If 
  Loop 
  A = Key2(A) ’再来一次,好让所有的数字都用上一遍 
’通过上面的循环把字符串限定在一定的数量 
Key1 = Key3(A) ’调用其他函数将数字转换成自己独有的注册码 
End Function 

Function Key2(Num) 
  Dim A,B,C 
  A = Mid(Num,1,6)’取字符串1-6个数字 
  B = Mid(Num,7,6)’取字符串6-12个数字 
  C = Mid(Num,13)’取字符串12以后的数字,跟函数key1种的相对应 
  Key2 = A \ 9 & B \ 7 & C ’缩短字符串,数字,自己随便选择一个1-9的就可以了 
End Function 

将数字转换成特定字符的方法有很多种,由于我自己的东西采用了我自己写的,所以,这个方法就不公布了。 

方法很简单,给大家做个参考。 

小窍门: 
如果最后返回的字符串太短,我们可以通过mid何len这2个内置函数在转换的时候将最后的注册码固定成特有的长度,比如长度为1,那么len(mid(str,3,3))则返回0,这样就得到固定长度的内容了 
或者用下面的函数也可以 

QUOTE: 
function aaa(str) 
  if len(str) < 12 then 
    for i = 1 to 12-len(str) 
        aaa = "0" & aaa ’或者 aaa = aaa & "0" ,这个0可以换成0-9的任意数字 
    next 
  end if 
end if 

或者干脆自己随便定一个长度合适的字符串填充上去

广告位