delphi GPT实现的企业信用代码校验函数  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi GPT实现的企业信用代码校验函数


GPT实现的企业信用代码校验函数

 function ValidateEnterpriseCode(EnterpriseCode: string): Boolean;
var
  i, sum, code, weight: Integer;
begin
  Result := False;
  
  // 企业信用代码长度校验
  if Length(EnterpriseCode) <> 18 then
    Exit;
    
  // 企业信用代码权重因子
  const factor: array[1..17] of Integer = (1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28);
  
  // 计算企业信用代码前17位的加权和
  sum := 0;
  for i := 1 to 17 do
  begin
    code := Ord(EnterpriseCode[i]) - Ord('0');
    weight := factor[i];
    sum := sum + code * weight;
  end;
  
  // 计算校验码
  code := 31 - sum mod 31;
  
  // 校验企业信用代码最后一位校验码
  if code = 31 then
    code := 0;
    
  if code <> Ord(EnterpriseCode[18]) - Ord('0') then
    Exit;
    
  Result := True;
end;

来源:https://blog.51cto.com/kinglandsoft/8627880


推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.1108660697937 seconds