首页 > 编程 > VBScript > 正文

使用vbscript生成36进制自动增长序号的实现代码

2020-06-26 18:40:16
字体:
来源:转载
供稿:网友

这篇文章主要介绍了使用vbscript生成36进制自动增长序号的实现代码,本文代码也可以在ASP中使用,需要的朋友可以参考下

asp生成0~9,a~z的36进制字符串,运行下面示例需要使用IE核心的浏览器,其他非IE核心浏览器不支持vbscript。

实现代码:

 

 
  1. <script language="vbscript"
  2. function getinitstring(l)'初始化指定长度的0字符串 
  3. l=l-1 
  4. for i=0 to l 
  5. getinitstring="0"&getinitstring 
  6. next 
  7. end function 
  8. function getnextchar(chrcode)'获取下一个字符 
  9. if chrcode=57 then'数字和字母标ascii不连贯,需要特殊处理一下 
  10. getnextchar="a" 
  11. else 
  12. getnextchar=chr(chrcode+1) 
  13. end if 
  14. end function 
  15. function getnextno(s,l)'获取下自增1的字符串 
  16. if trim(s)="" then'初始化字符串 
  17. getnextno=getinitstring(l):exit function 
  18. end if 
  19. l=len(s)-1 
  20. dim a():redim a(l) 
  21. for i=0 to l'拆分成数组 
  22. a(i)=mid(s,i+1,1) 
  23. next 
  24. carry=false'进位标志 
  25. for i=l to 0 step -1'从最低位开始遍历 
  26. chrcode=asc(a(i)) 
  27. if carry then 
  28. if chrcode<>122 then'不是z,自增后退出for循环,否则继续进位 
  29. a(i)=getnextchar(chrcode):exit for'退出循环 
  30. elseif i=0 then 
  31. getnextno="已经达到最大长度,无法继续进位,需要修改长度":exit function 
  32. end if 
  33. end if 
  34. if a(i)="z" then 
  35. carry=true:a(i)="0" 
  36. else 
  37. a(i)=getnextchar(chrcode):exit for'退出循环 
  38. end if 
  39. next 
  40. for i=0 to l'组合返回字符串 
  41. getnextno=getnextno&a(i) 
  42. next 
  43. end function 
  44. s="" 
  45. initlen=6 
  46. s=getnextno(s,initlen) 
  47. msgbox s'000000 
  48. s=getnextno(s,initlen) 
  49. msgbox s'000001 
  50. s="aaazzz" 
  51. s=getnextno(s,initlen) 
  52. msgbox s'aab000 
  53. s="zzzzzz" 
  54. s=getnextno(s,initlen) 
  55. msgbox s'已经达到最大长度,无法继续进位,需要修改长度 
  56. </script> 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表