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

📄 ulottery.pas

📁 由sbzldlb发布的这款程序是关于彩票根据数据推算出号码。
💻 PAS
📖 第 1 页 / 共 3 页
字号:

        if CmdQuery.FieldByname('RedLottery4').AsInteger+1> L_FenBuTu.Items[I].SubItems.Count then
        begin
          for j:=0 to  CmdQuery.FieldByname('RedLottery4').AsInteger-L_FenBuTu.Items[I].SubItems.Count do
          begin
          if CmdQuery.FieldByname('RedLottery4').AsInteger= L_FenBuTu.Items[I].SubItems.Count then
            List.SubItems.Add(CmdQuery.FieldByname('RedLottery4').AsString)
          else
            List.SubItems.Add('');
          end;
        end else  L_FenBuTu.Items[I].SubItems[CmdQuery.FieldByname('RedLottery4').AsInteger]
          :=CmdQuery.FieldByname('RedLottery4').AsString;

        if CmdQuery.FieldByname('RedLottery5').AsInteger+1> L_FenBuTu.Items[I].SubItems.Count then
        begin
          for j:=0 to  CmdQuery.FieldByname('RedLottery5').AsInteger-L_FenBuTu.Items[I].SubItems.Count do
          begin
          if CmdQuery.FieldByname('RedLottery5').AsInteger= L_FenBuTu.Items[I].SubItems.Count then
            List.SubItems.Add(CmdQuery.FieldByname('RedLottery5').AsString)
          else
            List.SubItems.Add('');
          end;
        end else  L_FenBuTu.Items[I].SubItems[CmdQuery.FieldByname('RedLottery5').AsInteger]
          :=CmdQuery.FieldByname('RedLottery5').AsString;

        if CmdQuery.FieldByname('RedLottery6').AsInteger+1> L_FenBuTu.Items[I].SubItems.Count then
        begin
          for j:=0 to  CmdQuery.FieldByname('RedLottery6').AsInteger-L_FenBuTu.Items[I].SubItems.Count do
          begin
          if CmdQuery.FieldByname('RedLottery6').AsInteger= L_FenBuTu.Items[I].SubItems.Count then
            List.SubItems.Add(CmdQuery.FieldByname('RedLottery6').AsString)
          else
            List.SubItems.Add('');
          end;
        end else  L_FenBuTu.Items[I].SubItems[CmdQuery.FieldByname('RedLottery6').AsInteger]
          :=CmdQuery.FieldByname('RedLottery6').AsString;




        CmdQuery.Next;
      end
    finally
      FreeAndNil(CmdQuery);
    end
  end else
  begin
    for I:=0 to 15 do
      if L_FenBuTu.Columns.Count<I+3 then
      begin
        L_FenBuTu.Columns.Add;
        L_FenBuTu.Column[I+2].Width:=24;
        L_FenBuTu.Column[I+2].Caption:=IntToStr(I+1);
      end;

    CmdQuery :=TAdoQuery.Create(NIl);
    try
      CmdQuery.Connection:=ADOConnection1;
      CmdQuery.Close;
      CmdQuery.SQL.Text:='select * From Lottery order by LotteryID Desc';
      CmdQuery.Open;



      for I:=0 to CmdQuery.RecordCount-1 do
      begin
        List:=L_FenBuTu.Items.Add;
        List.Caption:=CmdQuery.FieldByName('LotteryID').AsString;
        List.SubItems.Add(
          CmdQuery.FieldByname('RedLottery1').AsString
          +' '
          +CmdQuery.FieldByname('RedLottery2').AsString
          +' '
          +CmdQuery.FieldByname('RedLottery3').AsString
          +' '
          +CmdQuery.FieldByname('RedLottery4').AsString
          +' '
          +CmdQuery.FieldByname('RedLottery5').AsString
          +' '
          +CmdQuery.FieldByname('RedLottery6').AsString
          +'+'
          +CmdQuery.FieldByname('BlueLottery').AsString
          );

        if CmdQuery.FieldByname('BlueLottery').AsInteger+1> L_FenBuTu.Items[I].SubItems.Count then
        begin
          for j:=0 to  CmdQuery.FieldByname('BlueLottery').AsInteger-L_FenBuTu.Items[I].SubItems.Count do
          begin
          if CmdQuery.FieldByname('BlueLottery').AsInteger= L_FenBuTu.Items[I].SubItems.Count then
            List.SubItems.Add(CmdQuery.FieldByname('BlueLottery').AsString)
          else
            List.SubItems.Add('');
          end;
        end else  L_FenBuTu.Items[I].SubItems[CmdQuery.FieldByname('BlueLottery').AsInteger]
          :=CmdQuery.FieldByname('BlueLottery').AsString;

        CmdQuery.Next;
      end
    finally
      FreeAndNil(CmdQuery);
    end
  end;
end;

function GetMaxID(Str1,Str2,Str3,Str4,Str5,Str6:Integer):Integer;
begin
  Result:=Str1;
  if Result<Str2 then Result:=Str2;
  if Result<Str3 then Result:=Str3;
  if Result<Str4 then Result:=Str4;
  if Result<Str5 then Result:=Str5;
  if Result<Str6 then Result:=Str6;
end;

function GetMinID(Str1,Str2,Str3,Str4,Str5,Str6:Integer):Integer;
begin
  Result:=Str1;
  if (Result>Str2) and (Str2<>0) then Result:=Str2;
  if (Result>Str3) and (Str3<>0) then Result:=Str3;
  if (Result>Str4) and (Str4<>0) then Result:=Str4;
  if (Result>Str5) and (Str5<>0) then Result:=Str5;
  if (Result>Str6) and (Str6<>0) then Result:=Str6;
end;

function GetEvenLinkCount(Str1,Str2,Str3,Str4,Str5,Str6:Integer):String;
var
  LinkStr:String;
begin
  LinkStr:='';
  if Str1 Mod 2 =0 then
    LinkStr:=LinkStr+'1'
  else LinkStr:=LinkStr+'0';
  if Str2 Mod 2 =0 then
    LinkStr:=LinkStr+'1'
  else LinkStr:=LinkStr+'0';
  if Str3 Mod 2 =0 then
    LinkStr:=LinkStr+'1'
  else LinkStr:=LinkStr+'0';
  if Str4 Mod 2 =0 then
    LinkStr:=LinkStr+'1'
  else LinkStr:=LinkStr+'0';
  if Str5 Mod 2 =0 then
    LinkStr:=LinkStr+'1'
  else LinkStr:=LinkStr+'0';
  if Str6 Mod 2 =0 then
    LinkStr:=LinkStr+'1'
  else LinkStr:=LinkStr+'0';
  Result:=LinkStr;

end;

function GetOddLinkCount(Str1,Str2,Str3,Str4,Str5,Str6:Integer):String;
var
  LinkStr:String;
begin
  LinkStr:='';
  if Str1 Mod 2 <>0 then
    LinkStr:=LinkStr+'1'
  else LinkStr:=LinkStr+'0';
  if Str2 Mod 2 <>0 then
    LinkStr:=LinkStr+'1'
  else LinkStr:=LinkStr+'0';
  if Str3 Mod 2 <>0 then
    LinkStr:=LinkStr+'1'
  else LinkStr:=LinkStr+'0';
  if Str4 Mod 2 <>0 then
    LinkStr:=LinkStr+'1'
  else LinkStr:=LinkStr+'0';
  if Str5 Mod 2 <>0 then
    LinkStr:=LinkStr+'1'
  else LinkStr:=LinkStr+'0';
  if Str6 Mod 2 <>0 then
    LinkStr:=LinkStr+'1'
  else LinkStr:=LinkStr+'0';
  Result:=LinkStr;
end;

function GetEvenCount(Str1,Str2,Str3,Str4,Str5,Str6:Integer):Integer;
var
  EvenCount:Integer;
begin
  EvenCount:=0;
  if Str1 Mod 2 =0 then
    EvenCount:=EvenCount+1;
  if Str2 Mod 2 =0 then
    EvenCount:=EvenCount+1;
  if Str3 Mod 2 =0 then
    EvenCount:=EvenCount+1;
  if Str4 Mod 2 =0 then
    EvenCount:=EvenCount+1;
  if Str5 Mod 2 =0 then
    EvenCount:=EvenCount+1;
  if Str6 Mod 2 =0 then
    EvenCount:=EvenCount+1;
  Result:=EvenCount;
end;

function GetOddCount(Str1,Str2,Str3,Str4,Str5,Str6:Integer):Integer;
var
  EvenCount:Integer;
begin
  EvenCount:=0;
  if Str1 Mod 2 <>0 then
    EvenCount:=EvenCount+1;
  if Str2 Mod 2 <>0 then
    EvenCount:=EvenCount+1;
  if Str3 Mod 2 <>0 then
    EvenCount:=EvenCount+1;
  if Str4 Mod 2 <>0 then
    EvenCount:=EvenCount+1;
  if Str5 Mod 2 <>0 then
    EvenCount:=EvenCount+1;
  if Str6 Mod 2 <>0 then
    EvenCount:=EvenCount+1;

  Result:=EvenCount;
end;

procedure TLotteryFrm.XiangMuTu;
var
  CmdQuery : TAdoQuery;
  I        : Integer;
  List     : TListItem;
begin
  L_XiangMuTu.Clear;
  CmdQuery :=TAdoQuery.Create(NIl);
  try
    CmdQuery.Connection:=ADOConnection1;
    CmdQuery.Close;
    CmdQuery.SQL.Text:='select * From Lottery order by LotteryID Desc';
    CmdQuery.Open;

    for I:=0 to CmdQuery.RecordCount-1 do
    begin
      List:=L_XiangMuTu.Items.Add;
      List.Caption:=CmdQuery.FieldByName('LotteryID').AsString;
      List.SubItems.Add(
        CmdQuery.FieldByname('RedLottery1').AsString
        +' '
        +CmdQuery.FieldByname('RedLottery2').AsString
        +' '
        +CmdQuery.FieldByname('RedLottery3').AsString
        +' '
        +CmdQuery.FieldByname('RedLottery4').AsString
        +' '
        +CmdQuery.FieldByname('RedLottery5').AsString
        +' '
        +CmdQuery.FieldByname('RedLottery6').AsString
        +'+'
        +CmdQuery.FieldByname('BlueLottery').AsString
        );
        
      List.SubItems.Add(
        IntToStr(GetMaxID(
        CmdQuery.FieldByname('RedLottery1').AsInteger,
        CmdQuery.FieldByname('RedLottery2').AsInteger,
        CmdQuery.FieldByname('RedLottery3').AsInteger,
        CmdQuery.FieldByname('RedLottery4').AsInteger,
        CmdQuery.FieldByname('RedLottery5').AsInteger,
        CmdQuery.FieldByname('RedLottery6').AsInteger))
        );

      List.SubItems.Add(
        IntToStr(GetMinID(
        CmdQuery.FieldByname('RedLottery1').AsInteger,
        CmdQuery.FieldByname('RedLottery2').AsInteger,
        CmdQuery.FieldByname('RedLottery3').AsInteger,
        CmdQuery.FieldByname('RedLottery4').AsInteger,
        CmdQuery.FieldByname('RedLottery5').AsInteger,
        CmdQuery.FieldByname('RedLottery6').AsInteger))
        );

      List.SubItems.Add(
        GetEvenLinkCount(
        CmdQuery.FieldByname('RedLottery1').AsInteger,
        CmdQuery.FieldByname('RedLottery2').AsInteger,
        CmdQuery.FieldByname('RedLottery3').AsInteger,
        CmdQuery.FieldByname('RedLottery4').AsInteger,
        CmdQuery.FieldByname('RedLottery5').AsInteger,
        CmdQuery.FieldByname('RedLottery6').AsInteger)
        );

      List.SubItems.Add(
        GetOddLinkCount(
        CmdQuery.FieldByname('RedLottery1').AsInteger,
        CmdQuery.FieldByname('RedLottery2').AsInteger,
        CmdQuery.FieldByname('RedLottery3').AsInteger,
        CmdQuery.FieldByname('RedLottery4').AsInteger,
        CmdQuery.FieldByname('RedLottery5').AsInteger,
        CmdQuery.FieldByname('RedLottery6').AsInteger)
        );

      List.SubItems.Add(
        IntToStr(GetEvenCount(
        CmdQuery.FieldByname('RedLottery1').AsInteger,
        CmdQuery.FieldByname('RedLottery2').AsInteger,
        CmdQuery.FieldByname('RedLottery3').AsInteger,
        CmdQuery.FieldByname('RedLottery4').AsInteger,
        CmdQuery.FieldByname('RedLottery5').AsInteger,
        CmdQuery.FieldByname('RedLottery6').AsInteger))
        );

      List.SubItems.Add(
        IntToStr(GetOddCount(
        CmdQuery.FieldByname('RedLottery1').AsInteger,
        CmdQuery.FieldByname('RedLottery2').AsInteger,
        CmdQuery.FieldByname('RedLottery3').AsInteger,
        CmdQuery.FieldByname('RedLottery4').AsInteger,
        CmdQuery.FieldByname('RedLottery5').AsInteger,
        CmdQuery.FieldByname('RedLottery6').AsInteger))
        );

      List.SubItems.Add(
        IntToStr(
        CmdQuery.FieldByname('RedLottery1').AsInteger+
        CmdQuery.FieldByname('RedLottery2').AsInteger+
        CmdQuery.FieldByname('RedLottery3').AsInteger+
        CmdQuery.FieldByname('RedLottery4').AsInteger+
        CmdQuery.FieldByname('RedLottery5').AsInteger+
        CmdQuery.FieldByname('RedLottery6').AsInteger)
        );

      List.SubItems.Add(
        IntToStr(
        GetMaxID(
        CmdQuery.FieldByname('RedLottery1').AsInteger,
        CmdQuery.FieldByname('RedLottery2').AsInteger,
        CmdQuery.FieldByname('RedLottery3').AsInteger,
        CmdQuery.FieldByname('RedLottery4').AsInteger,
        CmdQuery.FieldByname('RedLottery5').AsInteger,
        CmdQuery.FieldByname('RedLottery6').AsInteger)-
        GetMinID(
        CmdQuery.FieldByname('RedLottery1').AsInteger,
        CmdQuery.FieldByname('RedLottery2').AsInteger,
        CmdQuery.FieldByname('RedLottery3').AsInteger,
        CmdQuery.FieldByname('RedLottery4').AsInteger,
        CmdQuery.FieldByname('RedLottery5').AsInteger,
        CmdQuery.FieldByname('RedLottery6').AsInteger))
        );
      CmdQuery.Next;
    end;
  finally
    FreeAndNil(CmdQuery);
  end;
end;

procedure TLotteryFrm.FenXiShuJu;
type
  TBallResultInfo=record
    BallCount:Integer;
  end;
  
var
  TopThreeRedBallInfo:array[0..32] of TBallResultInfo;
  TopThreeBlueBallInfo:array[0..15] of TBallResultInfo;
  I,J:Integer;
  MaxCountBall,MinCountBall:Integer;
  AveHeZhi,AveJianJu,AveJiShu,AveOuShu:Integer;
begin
  //前3场都出现的号码
  for i:=0 to 32 do
  begin
    TopThreeRedBallInfo[I].BallCount:=0;
    if I<=15 then TopThreeBlueBallInfo[I].BallCount:=0;
  end;

  if C_BallColor.Text='红球' then
  begin

    M_FenXiJieGuo.Clear;
    M_LastThreeID.Clear;
    M_RedMaxCount.Clear;
    M_RedMinCount.Clear;
    M_BlueMinCount.Clear;
    M_BlueMaxCount.Clear;

    M_FenXiJieGuo.Lines.Add('-----------分析的数据的总条数-----------');
    M_FenXiJieGuo.Lines.Add('分析的数据的总条数是:'+IntToStr(L_FenBuTu.Items.Count));


    if L_FenBuTu.Items.Count>3 then
    begin
      for I:=0 to 2 do
      begin
        for J:=1 to L_FenBuTu.Items[I].SubItems.Count-1 do
        begin
          if L_FenBuTu.Items[I].SubItems[J] <>'' then
          begin
            TopThreeRedBallInfo[J-1].BallCount:=
              TopThreeRedBallInfo[J-1].BallCount+1;
          end;
        end;
      end;

      //前3场出现的号码
      M_FenXiJieGuo.Lines.Add('');
      M_FenXiJieGuo.Lines.Add('-----------前3期出现的号码和次数-----------');
      for I:=0 to 32 do
      begin
        if TopThreeRedBallInfo[I].BallCount>0 then
        begin
          M_FenXiJieGuo.Lines.Add('红球'+IntToStr(I+1)+'出现'+IntTOStr(TopThreeRedBallInfo[I].BallCount)+'次');
          if I<9 then
            M_LastThreeID.text:='0'+IntToStr(I+1)+' '+M_LastThreeID.text            
          else
            M_LastThreeID.text:=IntToStr(I+1)+' '+M_LastThreeID.text;
        end;
      end;
    end;

    //出现次数最多的号码
    M_FenXiJieGuo.Lines.Add('');
    M_FenXiJieGuo.Lines.Add('-----------红球出现次数最多和最少的号码-----------');

    MaxCountBall:=RedBallInfo[0].BallCount;
    MInCountBall:=RedBallInfo[0].BallCount;
    for I:=1 to 32 do
    begin
      if MaxCountBall< RedBallInfo[I].BallCount then  MaxCountBall:= RedBallInfo[I].BallCount;
      if MInCountBall> RedBallInfo[I].BallCount then  MInCountBall:= RedBallInfo[I].BallCount;
    end;

    for I:=0 to 32 do
    begin
      if MaxCountBall= RedBallInfo[I].BallCount then
      begin
        M_FenXiJieGuo.Lines.Add('红球出现次数最多的号码是:'+IntToStr(I+1)+' 出现的次数是:'+IntToStr(MaxCountBall));

        if I>9 then
          M_RedMaxCount.Text:=IntToStr(I+1)+' '+ M_RedMaxCount.Text
        else M_RedMaxCount.Text:='0'+IntToStr(I+1)+' '+ M_RedMaxCount.Text;
      end;
    end;
    
    for I:=0 to 32 do
    begin
      if MInCountBall= RedBallInfo[I].BallCount then
      begin
        M_FenXiJieGuo.Lines.Add('红球出现次数最少的号码是:'+IntToStr(I+1)+' 出现的次数是:'+IntToStr(MInCountBall));
        if I>9 then

⌨️ 快捷键说明

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