⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ams.~pas

📁 在数据通读经常用的垂直奇校验,在网上很难找到,所以我写这个小的应用程序
💻 ~PAS
字号:
unit AMS;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Edit1: TEdit;
    Label7: TLabel;
    Label8: TLabel;
    Edit2: TEdit;
    Edit3: TEdit;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var

  reallength:integer;
  datah, datal,odddata,ewendata: Byte;
  i,j:integer;
  s1,s2:string;
  datafalse:boolean;
  strleng: integer;
  inputbustr: string;
  redataleng:integer;
  datainput:array[0..250] of Byte;
begin
  inputbustr:= edit1.Text;
  strleng:=length(inputbustr);
  datafalse:= true;
  for i:=1 to strleng do
    begin   //这里判断是否全是合法字符
       if ((inputbustr[i]='0')or(inputbustr[i]='1')or(inputbustr[i]='2')or(inputbustr[i]='3')
            or(inputbustr[i]='4')or(inputbustr[i]='5')or(inputbustr[i]='6')or(inputbustr[i]='7')
            or(inputbustr[i]='8')or(inputbustr[i]='9')or (inputbustr[i]='A')or(inputbustr[i]='B')
            or(inputbustr[i]='C')or(inputbustr[i]='D') or(inputbustr[i]='E')or(inputbustr[i]='F')
            or(inputbustr[i]=' ')) then
              begin
                datafalse:= true;
              end
             else
              begin
                datafalse:= false;
                 break;
              end;

    end;
  if datafalse  then
     begin
       if((strleng mod 3)=2) then strleng:=strleng +1;
       i:=0;
        reallength:= strleng div 3 ;
       for j:=1 to  reallength   do
        begin
           if(inputbustr[i*3+1]='0') then datah:= 0
           else if(inputbustr[i*3+1]='1')then datah:=1
           else if(inputbustr[i*3+1]='2')then datah:=2
           else if(inputbustr[i*3+1]='3')then datah:=3
           else if(inputbustr[i*3+1]='4')then datah:=4
           else if(inputbustr[i*3+1]='5')then datah:=5
           else if(inputbustr[i*3+1]='6')then datah:=6
           else if(inputbustr[i*3+1]='7')then datah:=7
           else if(inputbustr[i*3+1]='8')then datah:=8
           else if(inputbustr[i*3+1]='9')then datah:=9
           else if(inputbustr[i*3+1]='A')then datah:=10
           else if(inputbustr[i*3+1]='B')then datah:=11
           else if(inputbustr[i*3+1]='C')then datah:=12
           else if(inputbustr[i*3+1]='D')then datah:=13
           else if(inputbustr[i*3+1]='E')then datah:=14
           else if(inputbustr[i*3+1]='F')then datah:=15
           else  datah:=0;
           if(inputbustr[i*3+2]='0')then datal:=0
            else if(inputbustr[i*3+2]='1')then datal:=1
            else if(inputbustr[i*3+2]='2')then datal:=2
            else if(inputbustr[i*3+2]='3')then datal:=3
            else if(inputbustr[i*3+2]='4')then datal:=4
            else if(inputbustr[i*3+2]='5')then datal:=5
            else if(inputbustr[i*3+2]='6')then datal:=6
            else if(inputbustr[i*3+2]='7')then datal:=7
            else if(inputbustr[i*3+2]='8')then datal:=8
            else if(inputbustr[i*3+2]='9')then datal:=9
            else if(inputbustr[i*3+2]='A')then datal:=10
            else if(inputbustr[i*3+2]='B')then datal:=11
            else if(inputbustr[i*3+2]='C')then datal:=12
            else if(inputbustr[i*3+2]='D')then datal:=13
            else if(inputbustr[i*3+2]='E')then datal:=14
            else if(inputbustr[i*3+2]='F')then datal:=15
            else  datal:=0;
           datainput[i]:= datah * 16 +  datal ;
           inc(i);
        end;
        odddata:=datainput[0];
        for j:=1 to   reallength-1   do
           begin
               odddata:= odddata xor datainput[j];
           end;
        ewendata :=  not odddata;
        if((odddata div 16) = 15) then s1:='F'
        else if((odddata div 16) = 14) then s1:='E'
        else if((odddata div 16) = 13) then s1:='D'
        else if((odddata div 16) = 12) then s1:='C'
        else if((odddata div 16) = 12) then s1:='B'
        else if((odddata div 16) = 10) then s1:='A'
        else
           begin
           S1:= inttostr(odddata div 16);
           end;
         if((odddata mod 16) = 15) then s2:='F'
        else if((odddata mod 16) = 14) then s2:='E'
        else if((odddata mod 16) = 13) then s2:='D'
        else if((odddata mod 16) = 12) then s2:='C'
        else if((odddata mod 16) = 12) then s2:='B'
        else if((odddata mod 16) = 10) then s2:='A'
        else
          begin
            S2:= inttostr(odddata mod 16);
          end;
       edit2.text:=s1+s2;

        if((ewendata div 16) = 15) then s1:='F'
        else if((ewendata div 16) = 14) then s1:='E'
        else if((ewendata div 16) = 13) then s1:='D'
        else if((ewendata div 16) = 12) then s1:='C'
        else if((ewendata div 16) = 12) then s1:='B'
        else if((ewendata div 16) = 10) then s1:='A'
        else
           begin
           S1:= inttostr(ewendata div 16);
           end;
         if((ewendata mod 16) = 15) then s2:='F'
        else if((ewendata mod 16) = 14) then s2:='E'
        else if((ewendata mod 16) = 13) then s2:='D'
        else if((ewendata mod 16) = 12) then s2:='C'
        else if((ewendata mod 16) = 12) then s2:='B'
        else if((ewendata mod 16) = 10) then s2:='A'
        else
          begin
            S2:= inttostr(ewendata mod 16);
          end;
       edit3.text:=s1+s2;
    end
  else
     begin
      Edit2.Text:='';
      edit3.Text:='';
      showmessage('有非法字符存在,不能计算');
   end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 Edit1.Text:='';
 Edit2.Text:='';
 Edit3.Text:='';
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  edit1.Text:='';
  edit2.Text:='';
  edit3.Text:='';
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -