嘉定都市网

查看:602 回复:6 发表于 2005-1-14 14:02
  • TA的每日心情
    擦汗
    2013-6-24 09:45
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    qrcode
    跳转到指定楼层
    楼主
    发表于 2005-1-13 21:50:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    懂VB的进来帮偶看下 [复制链接]

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    Function IDCode15to18(sCode15 As String) As String
      '* 功能:将15的身份证号升为18位(根据GB 11643-1999)
      '* 参数:原来的号码
      '* 返回:升位后的18位号码
      Dim i As Integer
      Dim num As Integer
      Dim code As String
      num = 0
      IDCode15to18 = Left(sCode15, 6) + "19" + Right(sCode15, 9)
      ' 计算校验位
      For i = 18 To 2 Step -1
       num = num + (2 ^ (i - 1) Mod 11) * (Mid(IDCode15to18, 19 - i, 1))
      Next i
      num = num Mod 11
      Select Case num
      Case 0
       code = "1"
      Case 1
       code = "0"
      Case 2
       code = "X"
      Case Else
       code = Trim(Str(12 - num))
      End Select
      IDCode15to18 = IDCode15to18 + code
    End Function



    网上找的一个身份证15位转18位的函数
    偶有点看不太懂 谁帮偶做个注释   
           

    此贴由 元宝妹妹 在 2005-01-13 21:52:07 最后编辑
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏 转播转播 分享淘帖 支持支持 反对反对
    回复

    使用道具 打印 举报

    该用户从未签到

    沙发
    发表于 2005-1-13 22:22:15 | 只看该作者
    从定义变量开始,帮你一句一句的解释:
    定义 I 为整形
    定义 num 为整形
    定义 code 为字符串

    初始化 i 赋值为0

    函数返回字符串赋值为传递参数(sCode 字符串型)的左边6个字符,连接“19”字符,再连接sCode右边起9个字符。
    假设sCode="310114780405002",执行到这里,返回值
    IDCode15to18="31011419780405002"
    这里的代码有点不太严谨。连接字符串最好使用
    IDCode15to18 = Left(sCode15, 6) & "19" & Right(sCode15, 9)
    这个时候 IDCode15to18 还是17位

    校验码的计算:
    2的N次方(N=17 to 1)除以 11 ,取余数乘以 IDCode15to18 从第一位开始的数字字符。将所得结果存放到 num 累加器。
    又不够严谨!
    num = num + (2 ^ (i - 1) Mod 11) * Cint((Mid(IDCode15to18, 19 - i, 1)))

    将 num 累加器里的值再除以 11 取余数,将结果存放到num中。

    如果余数为 0 则 IDCode15to18 末尾连接 "1"
    如果余数为 1 则 IDCode15to18 末尾连接 "0"
    如果余数为 2 则 IDCode15to18 末尾连接 "X"
    其他的则 IDCode15to18 末尾连接 将(12-num)的结果转化成的字符串。

    将最后结果返回。

    OK,解释完毕!



    回复 支持 反对

    使用道具 打印 举报

  • TA的每日心情
    擦汗
    2013-6-24 09:45
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    板凳
     楼主| 发表于 2005-1-13 22:31:20 | 只看该作者
    偶像啊~~~~ THX啦~~~
    回复 支持 反对

    使用道具 打印 举报

    该用户从未签到

    地板
    发表于 2005-1-14 12:38:37 | 只看该作者
    有点不理解,为什么vb替代c语言成了大学计算机基础课成
    回复 支持 反对

    使用道具 打印 举报

  • TA的每日心情
    无聊
    2016-11-15 14:42
  • 签到天数: 686 天

    [LV.9]以坛为家II

    5
    发表于 2005-1-14 13:52:04 | 只看该作者
    原文由 类xiaofeng_yh 在 2005-01-14 12:38:37  发表
    有点不理解,为什么vb替代c语言成了大学计算机基础课成

    哪个学校?我至少还是学C的。
    回复 支持 反对

    使用道具 打印 举报

    该用户从未签到

    6
    发表于 2005-1-14 13:54:26 | 只看该作者
    原文由 真肥 在 2005-01-14 13:52:04  发表

    哪个学校?我至少还是学C的。

    很多都是啊
    除了计算机专业的
    非计算机专业的现在学编程语言都是先学vb了
    以前应该是学c的吧
    回复 支持 反对

    使用道具 打印 举报

  • TA的每日心情
    无聊
    2016-11-15 14:42
  • 签到天数: 686 天

    [LV.9]以坛为家II

    7
    发表于 2005-1-14 14:02:22 | 只看该作者
    我是非计算机专业的。不过2年前学的了。现在不知道,应该还是C吧。
    回复 支持 反对

    使用道具 打印 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    发表新贴 返回顶部