IMEI 生成器

unit UnitMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, Menus, Mask, wwdbedit, Wwdbspin, Spin, jpeg,
  ExtCtrls;

type
  TFormIMEIBuilder = class(TForm)
    StatusBar1: TStatusBar;
    GroupBox1: TGroupBox;
    edtFirstIMEI: TEdit;
    Button1: TButton;
    Label1: TLabel;
    lblIMEI14Len: TLabel;
    pgc: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    mmoResult: TMemo;
    mmoHelp: TMemo;
    pm: TPopupMenu;
    Label2: TLabel;
    Label3: TLabel;
    edtLastIMEI: TEdit;
    seQty: TSpinEdit;
    SaveToTextFile1: TMenuItem;
    dlgSave: TSaveDialog;
    CopytoClipboard1: TMenuItem;
    Image1: TImage;
    Image2: TImage;
    procedure Button1Click(Sender: TObject);
    procedure seQtyChange(Sender: TObject);
    procedure edtFirstIMEIChange(Sender: TObject);
    procedure FormCreate(Sender: TObject);

    function Gen15(IMEI14:Int64):Integer;
    procedure SaveToTextFile1Click(Sender: TObject);
    procedure CopytoClipboard1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FormIMEIBuilder: TFormIMEIBuilder;
const
  IMEI_Len = 15;
implementation

{$R *.dfm}

procedure TFormIMEIBuilder.Button1Click(Sender: TObject);
var
  i , IMEI15 :Integer;
  IMEI14 : INT64;
begin
  mmoResult.Clear;
  mmoResult.Lines.Add('IMEI');

  IMEI14 := StrToInt64(edtFirstIMEI.Text);
  for i := 1 to seQty.Value  do
  begin
    IMEI15 := Gen15(IMEI14);
    mmoResult.Lines.Add(IntToStr(IMEI14)+IntToStr(IMEI15));
    IMEI14 := IMEI14 + 1;
    StatusBar1.Panels[3].Text := 'Lines = ' + IntToStr(i);
    Application.ProcessMessages;
  end;

end;

procedure TFormIMEIBuilder.seQtyChange(Sender: TObject);
begin
  //
  if seQty.Text ='' then seQty.Value := 0;
  StatusBar1.Panels[0].Text := IntToStr(seQty.Value);

  edtLastIMEI.Text := IntToStr( StrToInt64(edtFirstIMEI.Text)+ seQty.value - 1);
end;

procedure TFormIMEIBuilder.edtFirstIMEIChange(Sender: TObject);
var
  Code : Integer;
  I: Int64;
begin
  if edtFirstIMEI.Text = '' then edtFirstIMEI.Text := '0';
  Val(edtFirstIMEI.Text, I, Code);
  if Code <> 0 then edtFirstIMEI.Text := IntToStr(i);
  lblIMEI14Len.Caption := IntToStr(Length(edtFirstIMEI.Text));

  edtLastIMEI.Text := IntToStr( StrToInt64(edtFirstIMEI.Text)+ seQty.value - 1);
end;

procedure TFormIMEIBuilder.FormCreate(Sender: TObject);
begin
  pgc.ActivePageIndex := 0;
end;

function TFormIMEIBuilder.Gen15(IMEI14: Int64):Integer;
var
  i,iSum,eSum:Integer;
  istr,estr,s:string;
begin
  SetLength(s,IMEI_Len);
  s := IntToStr(IMEI14);
  iSum := 0;
  eSum := 0;
  istr := '';
  estr := '';
  for i := 1 to IMEI_Len - 1 do
  begin
    if  (i mod 2) = 0 then // 奇数
      iSum := iSum + StrToInt(s[i])*2 mod 10 + StrToInt(s[i])*2 div 10
    else                   // 偶数
      eSum := eSum + StrToInt(s[i]);
  end;
 // mmoResult.Lines.Add(istr+chr(9)+IntToStr(iSum));
 // mmoResult.Lines.Add(estr+chr(9)+IntToStr(eSum));
  Result :=  Abs(((eSum + iSum) mod 10) -10) mod 10;
end; 

procedure TFormIMEIBuilder.SaveToTextFile1Click(Sender: TObject);
begin
  if dlgSave.Execute then
    mmoResult.Lines.SaveToFile(dlgSave.FileName);
end;

procedure TFormIMEIBuilder.CopytoClipboard1Click(Sender: TObject);
begin
  mmoResult.SelectAll;
  mmoResult.CopyToClipboard;
end;

end.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值