📄 ulottery.pas
字号:
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 + -