unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
  index : string;
  modlist : string;
  pass1 : string;
  ll_length : integer;
  li_real : integer;
  li_rtnchar : integer;
  li_modlistchar : integer;
  li_byte : integer;
  li_asc : integer;
  j,k : integer;
  li_1 : integer;
  li_2 : integer;
  lc_char : char;
  ls_rtn : string;
  ls_month : string;
  ls_year : string;
  ls_day : string;
  baseinfo01 : array[1..18] of string;
  baseinfo02 : array[1..18] of string;
  baseinfo11 : array[1..18] of string;
  baseinfo12 : array[1..18] of string;
  baseinfo21 : array[1..18] of string;
  baseinfo22 : array[1..18] of string;
  baseinfo31 : array[1..18] of string;
  baseinfo32 : array[1..18] of string;
  baseinfo41 : array[1..18] of string;
  baseinfo42 : array[1..18] of string;
  baseinfo51 : array[1..18] of string;
  baseinfo52 : array[1..18] of string;
  baseinfo61 : array[1..18] of string;
  baseinfo62 : array[1..18] of string;
  baseinfo71 : array[1..18] of string;
  baseinfo72 : array[1..18] of string;
  baseinfo81 : array[1..18] of string;
  baseinfo82 : array[1..18] of string;
  baseinfo91 : array[1..18] of string;
  baseinfo92 : array[1..18] of string;
  baseinfo5 : string;
  baseinfo6 : string;
  ls_real : string;
  ls_step : string;
  ls_macno : string;
  li_index : integer;
  li_rtn1 : integer;
  li_rtn2 : integer;
  xpos : integer;
  ypos : integer;
  ldt_today : tdatetime;
  li_yearchar : integer;
  li_monthchar : integer;
  li_daychar : integer;
  ls_step1 : string;
  ls_step2 : string;
  ls_step3 : string;
  begin
  index := trim(Form1.Edit1.Text);
  modlist := trim(Form1.Edit2.Text);
  pass1 := trim(Form1.Edit3.Text);
  li_byte := 255;
  baseinfo5 := '3721310882197860945';
  baseinfo6 := '7893051418765368348';
    baseinfo01[1] := 'A8';
  baseinfo01[2] := 'Q2';
  baseinfo01[3] := 'W2';
  baseinfo01[4] := 'NU';
  baseinfo01[5] := 'KP';
  baseinfo01[6] := 'AA';
  baseinfo01[7] := '3S';
  baseinfo01[8] := '6B';
  baseinfo01[9] := 'DW';
  baseinfo01[10] := 'N3';
  baseinfo01[11] := 'C2';
  baseinfo01[12] := 'HY';
  baseinfo01[13] := 'MI';
  baseinfo01[14] := 'TF';
  baseinfo01[15] := 'BY';
  baseinfo01[16] := 'SD';
  baseinfo01[17] := 'WD';
  baseinfo01[18] := '8Y';
  baseinfo02[1] := '59';
  baseinfo02[2] := '61';
  baseinfo02[3] := '39';
  baseinfo02[4] := '71';
  baseinfo02[5] := '73';
  baseinfo02[6] := '79';
  baseinfo02[7] := '83';
  baseinfo02[8] := '89';
  baseinfo02[9] := '97';
  baseinfo02[10] := '41';
  baseinfo02[11] := '33';
  baseinfo02[12] := '17';
  baseinfo02[13] := '19';
  baseinfo02[14] := '13';
  baseinfo02[15] := '27';
  baseinfo02[16] := '61';
  baseinfo02[17] := 'G5';
  baseinfo02[18] := 'Q2';
    baseinfo11[1] := '37'; 
  baseinfo11[2] := '35';
  baseinfo11[3] := '49'; 
  baseinfo11[4] := '51'; 
  baseinfo11[5] := '17'; 
  baseinfo11[6] := '77'; 
  baseinfo11[7] := '67'; 
  baseinfo11[8] := '93';
  baseinfo11[9] := '59'; 
  baseinfo11[10] := '81';
  baseinfo11[11] := '91';
  baseinfo11[12] := '19';
  baseinfo11[13] := '47';
  baseinfo11[14] := '89';
  baseinfo11[15] := '26';
  baseinfo11[16] := '28';
  baseinfo11[17] := 'D6';
  baseinfo11[18] := 'W3';
  baseinfo12[1] := 'QW'; 
  baseinfo12[2] := 'QV'; 
  baseinfo12[3] := 'WX'; 
  baseinfo12[4] := 'EZ'; 
  baseinfo12[5] := 'Z9';
  baseinfo12[6] := 'FT'; 
  baseinfo12[7] := 'KI'; 
  baseinfo12[8] := 'PL'; 
  baseinfo12[9] := 'PY';
  baseinfo12[10] := '8Y';
  baseinfo12[11] := 'T6';
  baseinfo12[12] := '8J';
  baseinfo12[13] := '8K';
  baseinfo12[14] := '5B';
  baseinfo12[15] := '4F';
  baseinfo12[16] := '6V';
  baseinfo12[17] := 'A3';
  baseinfo12[18] := '7F';
  baseinfo21[1] := '28';
  baseinfo21[2] := '31';  
  baseinfo21[3] := '52';
  baseinfo21[4] := '74';  
  baseinfo21[5] := '11';  
  baseinfo21[6] := '13';  
  baseinfo21[7] := '17';  
  baseinfo21[8] := '19';
  baseinfo21[9] := '23';  
  baseinfo21[10] := '29'; 
  baseinfo21[11] := '31'; 
  baseinfo21[12] := '83'; 
  baseinfo21[13] := '41';
  baseinfo21[14] := '43'; 
  baseinfo21[15] := '47'; 
  baseinfo21[16] := '53'; 
  baseinfo21[17] := 'H7'; 
  baseinfo21[18] := '8J';
  baseinfo22[1] := 'ZC';  
  baseinfo22[2] := 'TV';  
  baseinfo22[3] := 'T9';  
  baseinfo22[4] := 'U1';  
  baseinfo22[5] := '7H';
  baseinfo22[6] := 'E9';  
  baseinfo22[7] := 'NJ';  
  baseinfo22[8] := 'W9';  
  baseinfo22[9] := 'B7';  
  baseinfo22[10] := '4V';
  baseinfo22[11] := 'DX'; 
  baseinfo22[12] := 'VA'; 
  baseinfo22[13] := '1J'; 
  baseinfo22[14] := 'U3'; 
  baseinfo22[15] := 'WD';
  baseinfo22[16] := 'EG'; 
  baseinfo22[17] := '5V'; 
  baseinfo22[18] := 'BG'; 
  baseinfo31[1] := 'N8'; 
  baseinfo31[2] := '3T';
  baseinfo31[3] := 'K2';
  baseinfo31[4] := 'R4';
  baseinfo31[5] := 'P1';
  baseinfo31[6] := '1R';
  baseinfo31[7] := 'TR';
  baseinfo31[8] := 'HG';
  baseinfo31[9] := 'LQ';
  baseinfo31[10] := 'GF';
  baseinfo31[11] := 'VD';
  baseinfo31[12] := 'NV';
  baseinfo31[13] := 'DR';
  baseinfo31[14] := 'IH';
  baseinfo31[15] := 'E4';
  baseinfo31[16] := 'W3';
  baseinfo31[17] := 'Q3';
  baseinfo31[18] := 'MD';
  baseinfo32[1] := 'G9';
  baseinfo32[2] := 'J1';
  baseinfo32[3] := 'H9';
  baseinfo32[4] := 'H1';
  baseinfo32[5] := 'W3';
  baseinfo32[6] := 'RE';
  baseinfo32[7] := 'YN';
  baseinfo32[8] := 'RC';
  baseinfo32[9] := 'YV';
  baseinfo32[10] := 'WQ';
  baseinfo32[11] := 'ZS';
  baseinfo32[12] := 'A7';
  baseinfo32[13] := '1C';
  baseinfo32[14] := 'EE';
  baseinfo32[15] := 'DF';
  baseinfo32[16] := 'TG';
  baseinfo32[17] := 'AQ';
  baseinfo32[18] := 'CF';
    baseinfo41[1] := '43';
  baseinfo41[2] := 'F1'; 
  baseinfo41[3] := '21';
  baseinfo41[4] := '67';
  baseinfo41[5] := 'ED';
  baseinfo41[6] := 'E3';
  baseinfo41[7] := 'W7'; 
  baseinfo41[8] := 'SQ'; 
  baseinfo41[9] := 'W3'; 
  baseinfo41[10] := 'N9';
  baseinfo41[11] := 'M1';
  baseinfo41[12] := 'J3';
  baseinfo41[13] := 'RD';
  baseinfo41[14] := 'G6';
  baseinfo41[15] := '9U';
  baseinfo41[16] := 'GV';
  baseinfo41[17] := 'W4';
  baseinfo41[18] := 'G6';
  baseinfo42[1] := '27'; 
  baseinfo42[2] := '22'; 
  baseinfo42[3] := '67'; 
  baseinfo42[4] := '29'; 
  baseinfo42[5] := '21'; 
  baseinfo42[6] := '51'; 
  baseinfo42[7] := '57';
  baseinfo42[8] := '63'; 
  baseinfo42[9] := '69'; 
  baseinfo42[10] := '75';
  baseinfo42[11] := '77';
  baseinfo42[12] := '02';
  baseinfo42[13] := '37';
  baseinfo42[14] := '93';
  baseinfo42[15] := '30';
  baseinfo42[16] := '37';
  baseinfo42[17] := 'TD';
  baseinfo42[18] := '62';

解决方案 »

  1.   

      baseinfo51[1] := '*6'; 
      baseinfo51[2] := '+7'; 
      baseinfo51[3] := '3V';
      baseinfo51[4] := '22'; 
      baseinfo51[5] := '1A'; 
      baseinfo51[6] := '3V'; 
      baseinfo51[7] := 'MR'; 
      baseinfo51[8] := '7B'; 
      baseinfo51[9] := '#K'; 
      baseinfo51[10] := 'KH';
      baseinfo51[11] := 'VR';
      baseinfo51[12] := '5D';
      baseinfo51[13] := '7V';
      baseinfo51[14] := '4C';
      baseinfo51[15] := '3B';
      baseinfo51[16] := '2X';
      baseinfo51[17] := 'MF';
      baseinfo51[18] := '6G';
      baseinfo52[1] := '1D'; 
      baseinfo52[2] := '2B'; 
      baseinfo52[3] := '2S'; 
      baseinfo52[4] := '3X'; 
      baseinfo52[5] := '4A'; 
      baseinfo52[6] := 'WW';
      baseinfo52[7] := 'CC'; 
      baseinfo52[8] := '5N'; 
      baseinfo52[9] := '0C'; 
      baseinfo52[10] := '1M';
      baseinfo52[11] := '3M';
      baseinfo52[12] := '1Q';
      baseinfo52[13] := '2B';
      baseinfo52[14] := '6J';
      baseinfo52[15] := 'GT';
      baseinfo52[16] := 'HY';
      baseinfo52[17] := '&B';
      baseinfo52[18] := '#F';
      baseinfo61[1] := 'GG';
      baseinfo61[2] := '3J';
      baseinfo61[3] := '9K'; 
      baseinfo61[4] := '09'; 
      baseinfo61[5] := '0J'; 
      baseinfo61[6] := '0F'; 
      baseinfo61[7] := '0V';
      baseinfo61[8] := '02'; 
      baseinfo61[9] := '3K'; 
      baseinfo61[10] := '5V';
      baseinfo61[11] := '0M';
      baseinfo61[12] := '3G';
      baseinfo61[13] := '4S';
      baseinfo61[14] := '3B';
      baseinfo61[15] := '2J';
      baseinfo61[16] := '22';
      baseinfo61[17] := '1V';
      baseinfo61[18] := '6J';
      baseinfo62[1] := 'QW';
      baseinfo62[2] := 'QV'; 
      baseinfo62[3] := 'WX'; 
      baseinfo62[4] := 'EZ'; 
      baseinfo62[5] := 'Z9'; 
      baseinfo62[6] := 'FT'; 
      baseinfo62[7] := 'KI';
      baseinfo62[8] := 'PL'; 
      baseinfo62[9] := 'PY'; 
      baseinfo62[10] := '8Y';
      baseinfo62[11] := 'T6';
      baseinfo62[12] := '8J';
      baseinfo62[13] := '8K';
      baseinfo62[14] := '5B';
      baseinfo62[15] := '4F';
      baseinfo62[16] := '6V';
      baseinfo62[17] := 'YH';
      baseinfo62[18] := 'PK';
      baseinfo71[1] := 'BH';
      baseinfo71[2] := 'KI';
      baseinfo71[3] := 'KK';
      baseinfo71[4] := 'JM';
      baseinfo71[5] := 'JR';
      baseinfo71[6] := 'TR'; 
      baseinfo71[7] := 'TE'; 
      baseinfo71[8] := 'UT';
      baseinfo71[9] := 'RV'; 
      baseinfo71[10] := 'DR';
      baseinfo71[11] := 'CV';
      baseinfo71[12] := 'YT';
      baseinfo71[13] := 'UV';
      baseinfo71[14] := 'QA';
      baseinfo71[15] := 'A2';
      baseinfo71[16] := '53';
      baseinfo71[17] := '&W';
      baseinfo71[18] := '#Q';
      baseinfo72[1] := '33'; 
      baseinfo72[2] := '2S'; 
      baseinfo72[3] := '4C';
      baseinfo72[4] := '6N'; 
      baseinfo72[5] := '8V'; 
      baseinfo72[6] := '1A'; 
      baseinfo72[7] := '7V'; 
      baseinfo72[8] := '9M'; 
      baseinfo72[9] := '21'; 
      baseinfo72[10] := '33';
      baseinfo72[11] := '34';
      baseinfo72[12] := '67';
      baseinfo72[13] := '19';
      baseinfo72[14] := '13';
      baseinfo72[15] := '27';
      baseinfo72[16] := '61';
      baseinfo72[17] := 'S#';
      baseinfo72[18] := 'J&';
      baseinfo81[1] := '28';
      baseinfo81[2] := '31'; 
      baseinfo81[3] := '52'; 
      baseinfo81[4] := '74'; 
      baseinfo81[5] := '11'; 
      baseinfo81[6] := '13';
      baseinfo81[7] := '17'; 
      baseinfo81[8] := '19'; 
      baseinfo81[9] := '23'; 
      baseinfo81[10] := '29';
      baseinfo81[11] := '31';
      baseinfo81[12] := '83';
      baseinfo81[13] := '41';
      baseinfo81[14] := '43';
      baseinfo81[15] := '47';
      baseinfo81[16] := '53';
      baseinfo81[17] := 'QA';
      baseinfo81[18] := 'YJ';
      baseinfo82[1] := 'VG'; 
      baseinfo82[2] := '6H';
      baseinfo82[3] := '3W'; 
      baseinfo82[4] := 'QA'; 
      baseinfo82[5] := '1A'; 
      baseinfo82[6] := 'SE'; 
      baseinfo82[7] := 'P9'; 
      baseinfo82[8] := 'BN'; 
      baseinfo82[9] := 'VV';
      baseinfo82[10] := 'PT';
      baseinfo82[11] := 'RS';
      baseinfo82[12] := 'RG';
      baseinfo82[13] := 'GY';
      baseinfo82[14] := 'KB';
      baseinfo82[15] := 'PB';
      baseinfo82[16] := 'SY';
      baseinfo82[17] := 'KU';
      baseinfo82[18] := 'TL';
      baseinfo91[1] := '3S'; 
      baseinfo91[2] := 'VF';
      baseinfo91[3] := '6Y';
      baseinfo91[4] := '7B';
      baseinfo91[5] := '8M';
      baseinfo91[6] := '9G';
      baseinfo91[7] := '5V';
      baseinfo91[8] := '4C';
      baseinfo91[9] := '3X';
      baseinfo91[10] := 'BV';
      baseinfo91[11] := 'HG';
      baseinfo91[12] := 'RD';
      baseinfo91[13] := 'FT';
      baseinfo91[14] := 'KI';
      baseinfo91[15] := 'P8';
      baseinfo91[16] := '4C';
      baseinfo91[17] := 'QQ';
      baseinfo91[18] := 'TT';
      baseinfo92[1] := '54'; 
      baseinfo92[2] := '71'; 
      baseinfo92[3] := '87'; 
      baseinfo92[4] := '54';
      baseinfo92[5] := '53'; 
      baseinfo92[6] := '69'; 
      baseinfo92[7] := '87'; 
      baseinfo92[8] := '79'; 
      baseinfo92[9] := '55'; 
      baseinfo92[10] := '44';
      baseinfo92[11] := '34';
      baseinfo92[12] := '57';
      baseinfo92[13] := 'N9';
      baseinfo92[14] := 'B3';
      baseinfo92[15] := 'W7';
      baseinfo92[16] := 'W1';
      baseinfo92[17] := 'HH';
      baseinfo92[18] := 'PP';
      
      ll_length := Length(index);
      ls_step := '';  for j := 1 to 18 do
      begin
        k := j;
        li_rtnchar := integer(index[j]);
        li_modlistchar := integer(modlist[k]);
        li_real := (li_rtnchar + li_modlistchar) mod 10;
        ls_real := string(li_real);
        ls_step := trim(ls_step + ls_real);
      end;  ls_year := trim(copy(pass1,1,4));
      ls_month := trim(copy(pass1,5,2));
      ls_day := trim(copy(pass1,7,2));
      ls_step1 := '';  for j := 1 to 4 do
      begin
        k := j;
        li_rtnchar := integer(ls_step[j]);
        li_yearchar := integer(ls_year[k]);
        li_real := (li_rtnchar + li_yearchar) mod 10;
        ls_real := string(li_real);
        ls_step1 := trim(ls_step1 + ls_real);
      end;  ls_step2 := '';  for j := 1 to 2 do
      begin
        k := j;
        li_rtnchar := integer(copy(ls_step,j + 8,1));
        li_monthchar := integer(copy(ls_month,k,1));
        li_real := (li_rtnchar + li_monthchar) mod 10;
        ls_real := string(li_real);
        ls_step2 := trim(ls_step2 + ls_real);
      end;  ls_step3 := '';  for j := 1 to 2 do
      begin
        k := j;
        li_rtnchar := integer(copy(ls_step,j + 12,1));
        li_daychar := integer(copy(ls_day,k,1));
        li_real := (li_rtnchar + li_daychar) mod 10;
        ls_real := string(li_real);
        ls_step3 := trim(ls_step3 + ls_real);
      end;  ls_step := trim(ls_step1 + copy(ls_step,5,4) + ls_step2 + copy(ls_step,11,2) + ls_step3 + copy(ls_step,15,4));
      li_index := 0;
      

  2.   

    for j := 1 to ll_length do
      begin
        lc_char := char(ls_step[j]);
        li_asc := ord(lc_char);
        li_index := li_index + li_asc;
      end;
      li_rtn1 := li_index  mod 10;
      ls_rtn := '';
                                            
      if li_rtn1 = 0 then
      begin
      for j := 1 to ll_length do
       begin
       k := j;
       xpos := integer(ls_step[j]);
        xpos := xpos mod 4;
        ypos := integer(baseinfo5[k]);
        end;                                
      if ypos = 0 then
        begin
         ypos := 13;
        end;
      if xpos = 0 then
        begin
         ls_rtn := trim(ls_rtn + baseinfo01[ypos]);
        end;
      if xpos = 1 then
        begin
       ls_rtn := trim(ls_rtn + baseinfo02[ypos]);
        end;
      if xpos = 2 then
        begin
       ls_rtn := trim(ls_rtn + baseinfo62[ypos]);
        end;
      if xpos = 3 then
        begin
       ls_rtn := trim(ls_rtn + baseinfo72[ypos]);
        end;
      end;  if li_rtn1 = 1 then
      begin
    for j := 1 to ll_length do
        begin
        k := j;
    xpos := integer(ls_step[j]);
    xpos := xpos mod 4;
    ypos := integer(baseinfo6[k]);
        end;
    if ypos = 0 then
        begin
    ypos := 13
        end;
    if xpos = 0 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo11[ypos]);
    end;
    if xpos = 1 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo52[ypos]);
        end;
    if xpos = 2 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo81[ypos]);
    end;
    if xpos = 3 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo12[ypos]);
    end;
      end;  if li_rtn1 = 2 then
      begin
      for j := 1 to ll_length  do
        begin
        k := j;
    xpos := integer(ls_step[j]);
    xpos := xpos mod 4;
    ypos := integer(baseinfo6[k]);
        end;
    if ypos = 0 then
        begin
    ypos := 13;
        end;
    if xpos = 0 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo21[ypos]);
        end;
    if xpos = 1 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo22[ypos]);
        end;
    if xpos = 2 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo31[ypos]);
    end;
    if xpos = 3 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo32[ypos]);
    end;
      end;  if li_rtn1 = 3 then
      begin
    for j := 1 to ll_length do
      begin
        k := j;
    xpos := integer(ls_step[j]);
    xpos := xpos mod 4 ;
    ypos := integer(baseinfo6[k]);
      end;
    if ypos = 0 then
        begin
    ypos := 13;
    end;
    if xpos = 0 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo31[ypos]);
    end;
    if xpos = 1 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo32[ypos]);
    end;
    if xpos = 2 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo41[ypos]);
    end;
    if xpos = 3 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo42[ypos]);
    end;
      end;  if li_rtn1 = 4 then                       
      begin
    for j := 1 to ll_length do
      begin
        k := j;
    xpos := integer(ls_step[j]);
    xpos := xpos mod 4;
    ypos := integer(baseinfo6[k]);
      end;
    if ypos = 0 then
        begin
    ypos := 13;
    end;
    if xpos = 0 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo41[ypos]);
    end;
    if xpos = 1 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo42[ypos]);
    end;
    if xpos = 2 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo51[ypos]);
    end;
    if xpos = 3 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo52[ypos]);
    end;
      end;  if li_rtn1 = 5 then
      begin
    for j := 1 to ll_length do
        begin
        k := j;
    xpos := integer(ls_step[j]);
    xpos := xpos mod 4;
    ypos := integer(baseinfo6[k]);
        end;
    if ypos = 0 then
        begin
    ypos := 13;
    end;
    if xpos = 0 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo51[ypos]);
    end;
    if xpos = 1 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo52[ypos]);
    end;
    if xpos = 2 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo61[ypos]);
    end;
    if xpos = 3 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo62[ypos]);
    end;
      end;  if li_rtn1 = 6 then
      begin
    for j := 1 to ll_length do
      begin
        k := j;
    xpos := integer(ls_step[j]);
    xpos := xpos mod 4;
    ypos := integer(baseinfo6[k]);
      end;
    if ypos = 0 then
        begin
    ypos := 13;
    end;
    if xpos = 0 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo61[ypos]);
    end;
    if xpos = 1 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo62[ypos]);
    end;
    if xpos = 2 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo71[ypos]);
    end;
    if xpos = 3 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo72[ypos]);
    end;
      end;  if li_rtn1 = 7 then
      begin
    for j := 1 to ll_length do
      begin
        k := j;
    xpos := integer(ls_step[j]);
    xpos := xpos mod 4;
    ypos := integer(baseinfo6[k]);
      end;
    if ypos = 0 then
        begin
    ypos := 13;
    end;
    if xpos = 0 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo71[ypos]);
    end;
    if xpos = 1 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo72[ypos]);
    end;
    if xpos = 2 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo81[ypos]);
    end;
    if xpos = 3 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo82[ypos]);
    end;
      end;  if li_rtn1 = 8 then
      begin
    for j := 1 to ll_length do
      begin
        k :=j ;
    xpos := integer(ls_step[j]);
    xpos := xpos mod 4;
    ypos := integer(baseinfo6[k]);
    if ypos = 0 then
        begin
    ypos := 13;
    end;
    if xpos = 0 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo81[ypos]);
    end;
    if xpos = 1 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo82[ypos]);
    end;
    if xpos = 2 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo91[ypos]);
    end;
    if xpos = 3 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo92[ypos]);
    end;
      end;
                                             
      if li_rtn1 = 9 then
      begin
    for j := 1 to ll_length do
      begin
        k := j;
    xpos := integer(ls_step[j]);
    xpos := xpos mod 4;
    ypos := integer(baseinfo6[k]);
      end;
    if ypos = 0 then
        begin
    ypos := 13;
    end;
    if xpos = 0 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo91[ypos]);
    end;
    if xpos = 1 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo92[ypos]);
    end;
    if xpos = 2 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo01[ypos]);
    end;
    if xpos = 3 then
        begin
    ls_rtn := trim(ls_rtn + baseinfo02[ypos]);
    end;
      end;  ls_rtn := trim(ls_year + ls_month + ls_day + copy(ls_rtn,9,28));
      Form1.Edit4.Text := ls_rtn;
    end;end;end.*********************************************以上是程序的完整源代码,直接复制到代码窗口就可以了,运行开始时,分别在  Form1.Edit1.Text、Form1.Edit2.Text、Form1.Edit3.Text,输入类似:
    "怂衔贤纹咸拖拖认舷"、"是扇颂迫鲜撬掏墒"、"拖锨鲜瓮迫仕糖噬绕仕吞似侨墒似翘臀耸"的三个字符串,对变量index、modlist、pass1赋值,点击按钮后,进行运算,将返回值输出到Form1.Edit4.Text。运行后出错信息如下:【Project Project1.exe raised exception class EAccessViolation with message 'Accessviolation at address 0040427C in module 'Project1.exe'. Read of address FFFFFFFF'.process stopped. Use Step or Run to continue.】我调试了四五天,检查了多编程序代码,始终没有发现那里出错还请高手帮忙瞧瞧,指点一二。高分送上!
      

  3.   

    小弟是delphi初学者,还不怎么会用它的调试工具,怎么下断点,如何调试,能否进行类似汇编的单步跟踪,还请详细说说
      

  4.   

    463行:
    ls_real := string(li_real); 
    >>
    ls_real := IntToStr(li_real);
      

  5.   

    错误类似,直接替换得了
    将string(替换为IntToStr(
      

  6.   

    哈哈,真多呀!其实你这个地方就几个错误,把Int转化为String用IntToStr()函数不要用String(),反过来把String转化为Int用StrToIntDef()函数
    eg:
    ls_real := string(li_real);==>ls_real := IntToStr(li_real);
    ypos := integer(baseinfo6[k]);==>ypos := StrToIntDef(baseinfo6[k], 0);
      

  7.   

    哈哈,真多呀!其实你这个地方就几个错误,把Int转化为String用IntToStr()函数不要用String(),反过来把String转化为Int用StrToIntDef()函数
    eg:
    ls_real := string(li_real);==>ls_real := IntToStr(li_real);
    ypos := integer(baseinfo6[k]);==>ypos := StrToIntDef(baseinfo6[k], 0);至于代码是逻辑上出了什么问题,还是靠你自己,你的代码也太多了
      

  8.   

    哈哈,真多呀!其实你这个地方就几个错误,把Int转化为String用IntToStr()函数不要用String(),反过来把String转化为Int用StrToIntDef()函数
    eg:
    ls_real := string(li_real);==>ls_real := IntToStr(li_real);
    ypos := integer(baseinfo6[k]);==>ypos := StrToIntDef(baseinfo6[k], 0);
      

  9.   

    哈哈,真多呀!其实你这个地方就几个错误,把Int转化为String用IntToStr()函数不要用String(),反过来把String转化为Int用StrToIntDef()函数
    eg:
    ls_real := string(li_real);==>ls_real := IntToStr(li_real);
    ypos := integer(baseinfo6[k]);==>ypos := StrToIntDef(baseinfo6[k], 0);
      

  10.   

    嗯,我也找出这个原因了。。可发现,奶奶的。。最后  
    ls_rtn := trim(ls_year + ls_month + ls_day + copy(ls_rtn,9,28));     
    Form1.Edit4.Text := ls_rtn; 
    这两句,程序根本没有执行,还在调试中
      

  11.   

    嗯,我也找出这个原因了。。可发现,奶奶的。。最后  
    ls_rtn := trim(ls_year + ls_month + ls_day + copy(ls_rtn,9,28));     
    Form1.Edit4.Text := ls_rtn; 
    这两句,程序根本没有执行,还在调试中
      

  12.   

    嗯,我也找出这个原因了。。可发现,奶奶的。。最后  
    ls_rtn := trim(ls_year + ls_month + ls_day + copy(ls_rtn,9,28));     
    Form1.Edit4.Text := ls_rtn; 
    这两句,程序根本没有执行,还在调试中