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

📄 ulott3d.~pas

📁 福利彩票3D分析程序 使用Delphi开发。
💻 ~PAS
📖 第 1 页 / 共 5 页
字号:
         Code2_2:Shortint	;
         Code2_3:Shortint ;
         Code2_4:Shortint ;
         Code3_1:Shortint	;
         Code3_2:Shortint	;
         Code3_3:Shortint ;
         Code3_4:Shortint ;
         Count:integer;
   end;
   TCompages444CodeList=record
         OnlgFlag:boolean;  //号码是否唯一
         Compages444CodeList:array[0..cnCompages444CodeMax-1] of  TCompages444CodeNode;
   end;

   ///******************************//
   //组3组合列表,不考虑哪个是重号
   TZH3CodeTypeNoNode=record
        Code1:shortint;
        Code2:shortint;
        Count:integer;
   end;
   TZH3CodeTypeNoList=record
        ZH3CodeTypeNoList:array[0..cnZH3CodeTypeNoMax-1] of TZH3CodeTypeNoNode;
   end;

  //////////////////////////////////////////////////////////////////////////////////////////
  TForm3D = class(TForm)
    ControlBar3D: TControlBar;
    PanelColor: TPanel;
    ColorDialog: TColorDialog;
    ButtonColor: TButton;
    ButtonStat: TButton;
    StatusBar1: TStatusBar;
    ZcPersistGrid: TZcPersistGrid;
    ButtonGetCode: TButton;
    ButtonCopy: TButton;
    PanelInput: TPanel;
    ButtonQuit: TButton;
    MainMenu: TMainMenu;
    File3D: TMenuItem;
    File3D_Stat: TMenuItem;
    File3D_Quit: TMenuItem;
    Menu_Param: TMenuItem;
    Menu_DisplaySet: TMenuItem;
    ButtonSelect: TButton;
    procedure ButtonColorClick(Sender: TObject);
    procedure ButtonStatClick(Sender: TObject);
    procedure ButtonGetCodeClick(Sender: TObject);
    procedure ButtonCopyClick(Sender: TObject);
    procedure ButtonQuitClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure ZcPersistGridMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure ButtonSelectClick(Sender: TObject);
  private
    { Private declarations }
  public


    procedure GetCodeFromFile;  //从文件取号码
    procedure SetInitParam;  //设置初始化参数
    procedure DisplayHeadLine; //显示标题
    procedure DisplayHeadLineRepaint(pIdx:integer); //重新显示标题
    procedure SetCellValue(pCol:integer;pRow:integer;pValue:string);//设置单元格值
    procedure SetBackColor(pCol:integer;pRow:integer;pBkColor:TColor); //设置单元格背景色


    function GetOddEvenCount(pCode1:integer;pCode2:integer;pCode3:integer):integer; //判定奇偶个数(奇数个数)
    function GetBigSmallCount(pCode1:integer;pCode2:integer;pCode3:integer):integer; //判定大小个数(大的个数)
    function GetCodeCount(pCode1:integer;pCode2:integer;pCode3:integer):integer;  //判定号码个数
    function GetShapeIndex(pCode1:integer;pCode2:integer;pCode3:integer):integer; //取得形状ID
    function GetLinkCodeCount(pCode1:integer;pCode2:integer;pCode3:integer):integer; //取得连号个数
    function GetTreasureCount(pCode1:integer;pCode2:integer;pCode3:integer):integer; //取得开宝个数
    function GetBrotherCount(pCode1:integer;pCode2:integer;pCode3:integer;pType:string):integer; //取得两个数
    function GetPreDisplayFlag(pCode1:integer;pCode2:integer;pCode3:integer;pCurRow:integer):integer; //该号码以前是否出现过
    function GetPreNDisplayFlag(pCode1:integer;pCode2:integer;pCode3:integer;pCurRow:integer):integer; //该号码以前是否出现过
    procedure GetCheckSelect(var pCellArray:TCellArray;pMaxCol:integer;pMaxRow:integer); //根据在选号取设定的参数进行验证排列
    procedure GetCheckSelectZH6(var pCellArray:TCellArray;pMaxCol:integer;pMaxRow:integer); //根据在选号取设定的参数进行验证组6
    procedure Compage3CodeHeadLine;  //3个号码组合标题分析
    function GetCompage3CodeIdx(pCode1:integer;pCode2:integer;pCode3:integer):integer;  //取得该号码在3个号码组合中的索引
    procedure Compage4CodeHeadLine;  //4个号码组合标题分析
    procedure SetCompage4CodeCellArrayFlag(var pCellArray:TCellArray;pCode1:integer;pCode2:integer;pCode3:integer;pRowNum:integer);  //设置该号码在4个号码组合中的标志
    procedure Compage5CodeHeadLine;  //5个号码组合标题分析
    procedure SetCompage5CodeCellArrayFlag(var pCellArray:TCellArray;pCode1:integer;pCode2:integer;pCode3:integer;pRowNum:integer);  //设置该号码在5个号码组合中的标志
    procedure Compage6CodeHeadLine;  //6个号码组合标题分析
    procedure SetCompage6CodeCellArrayFlag(var pCellArray:TCellArray;pCode1:integer;pCode2:integer;pCode3:integer;pRowNum:integer);  //设置该号码在6个号码组合中的标志
    procedure Compage7CodeHeadLine;  //7个号码组合标题分析
    procedure SetCompage7CodeCellArrayFlag(var pCellArray:TCellArray;pCode1:integer;pCode2:integer;pCode3:integer;pRowNum:integer);  //设置该号码在7个号码组合中的标志
    procedure Compage8CodeHeadLine;  //8个号码组合标题分析
    procedure SetCompage8CodeCellArrayFlag(var pCellArray:TCellArray;pCode1:integer;pCode2:integer;pCode3:integer;pRowNum:integer);  //设置该号码在8个号码组合中的标志
    procedure Compage222CodeHeadLine;  //222个号码组合标题分析
    procedure SetCompage222CodeCellArrayFlag(var pCellArray:TCellArray;pCode1:integer;pCode2:integer;pCode3:integer;pRowNum:integer);  //设置该号码在222个号码组合中的标志
    procedure Compage333CodeHeadLine;  //333个号码组合标题分析
    procedure SetCompage333CodeCellArrayFlag(var pCellArray:TCellArray;pCode1:integer;pCode2:integer;pCode3:integer;pRowNum:integer);  //设置该号码在333个号码组合中的标志
    procedure Compage444CodeHeadLine;  //444个号码组合标题分析
    procedure SetCompage444CodeCellArrayFlag(var pCellArray:TCellArray;pCode1:integer;pCode2:integer;pCode3:integer;pRowNum:integer);  //设置该号码在444个号码组合中的标志

    function  GetPreDispNCurDispCellArrayFlag(pCode1:integer;pCode2:integer;pCode3:integer;pRowNum:integer):integer; //设置该号码以前出现>=N次,本次再出现的标志
    function  GetCompages3BeforeNFlag(pCode1:integer;pCode2:integer;pCode3:integer):integer; // 组合3排在前N个的组合出现情况
    function  GetNCompagesFlag(pCode1:integer;pCode2:integer;pCode3:integer):integer; // 多种组合方式
    
    procedure Brother2TopHeadLine;  //两个号码在不同位置出现排名
    procedure SetBrother2TopCellArrayFlag(var pCellArray:TCellArray;pCode1:integer;pCode2:integer;pCode3:integer;pRowNum:integer);  //两个号码在不同位置出现排名
  
    //***************************//
    //组3,出现情况
    function  GetIsZH3Flag(pCode1:integer;pCode2:integer;pCode3:integer):integer; //判定次号码是否组3,1是,-1不是
    function  GetZH3In45Flag(pCode1:integer;pCode2:integer;pCode3:integer):integer; //判定组合3在45个组合中位置,-1没有发现
    procedure ZH3Select2HeadLine;  //组合3,10个取2个组合45个,从出现次数大到小排列
    function  GetZH3In45SelectPreNFlag(pCode1:integer;pCode2:integer;pCode3:integer):integer; //组合3中45个组合取前N个出现情况

    procedure InitCellArray(var pCellArray:TCellArray;pMaxCol:integer;pMaxRow:integer); //初始化二维数组
    procedure Statistic_Merge_Display(pCellArray:TCellArray;pBeginColIdx:integer;pBeginRowIdx:integer;pMaxCol:integer;pMaxRow:integer;pHeadLineIdx:integer); //统计结果和汇总结果显示
    procedure Statistic_Merge_Main; //分析过程

  end;



var
  Form3D: TForm3D;

  /////////////////////////////////////////////////
  //全局变量
    gl_CodeList:TCodeList;                 //号码列表
    gl_HeadLineList:THeadLineList;         //标题列表
    gl_HeadLineGridStartCol:integer;       //标题在表格中开始列
    gl_HeadLIneGridStartRow:integer;       //标题在表格中开始行
    gl_InfoStartCol:integer;               //分析内容开始列
    gl_InfoFirstStartRow:integer;          //分析内容第一部分开始行
    gl_InfoSecondStartRow:integer;         //分析内容第二部分开始行

    gl_BackColorList:TBackColorList;       //背景颜色列表

    gl_Compages3CodeList:TCompages3CodeList; //3个号码组合列表
    gl_Compages4CodeList:TCompages4CodeList; //4个号码组合列表
    gl_Compages5CodeList:TCompages5CodeList; //5个号码组合列表
    gl_Compages6CodeList:TCompages6CodeList; //6个号码组合列表
    gl_Compages7CodeList:TCompages7CodeList; //7个号码组合列表
    gl_Compages8CodeList:TCompages8CodeList; //8个号码组合列表
    gl_Compages222CodeList:TCompages222CodeList; //222个号码组合列表
    gl_Compages333CodeList:TCompages333CodeList; //333个号码组合列表
    gl_Compages444CodeList:TCompages444CodeList; //444个号码组合列表

    gl_NodeCodeTable222:array[0..cnMaxZH222] of TCompages222CodeNode;  //222组合列表
    gl_NodeCodeTable333:array[0..cnMaxZH333] of TCompages333CodeNode;  //333组合列表
    gl_NodeCodeTable444:array[0..cnMaxZH444] of TCompages444CodeNode;  //444组合列表

    gl_Brother2TopList:array[0..cnBrother2TopMax] of  TBrother2TopNode;  //两个号码在不同位置出现排名
    
    //************************************************//
    //组合3,类型列表
    gl_ZH3CodeTypeNoList:TZH3CodeTypeNoList;  //组合3中45个组合列表(不考虑重号)

implementation

uses uGetCode;

{$R *.dfm}

////////////////////////////////////////////////////////////////////////////////////////////////////
//////
//////     绘制表头
//////
////////////////////////////////////////////////////////////////////////////////////////////////////

//从文件取号码
procedure TForm3D.GetCodeFromFile;
var
  CodeFile:TextFile;
  sCode:string;
begin
  AssignFile(CodeFile,'Code.txt');
  Reset(CodeFile);
  try
     gl_CodeList.CurCodeCount:=0;
     while not Eof(CodeFile) do
     begin
        Readln(CodeFile,sCode);
        if length(sCode)>=11 then
        begin
          gl_CodeList.CodeList[gl_CodeList.CurCodeCount].CodeDateNumber:=Copy(sCode,1,7);
          gl_CodeList.CodeList[gl_CodeList.CurCodeCount].Code1:=StrToInt(Copy(sCode,9,1));
          gl_CodeList.CodeList[gl_CodeList.CurCodeCount].Code2:=StrToInt(Copy(sCode,10,1));
          gl_CodeList.CodeList[gl_CodeList.CurCodeCount].Code3:=StrToInt(Copy(sCode,11,1));
          gl_CodeList.CurCodeCount:=gl_CodeList.CurCodeCount+1; //记录数
        end;
     end;
  finally
    CloseFile(CodeFile);
  end;

end;


//设置初始化参数
procedure TForm3D.SetInitParam;
var
   i,j,k:integer;
   Rect:TRect;
   Ini: TIniFile;
   vCodeZHOnly_3Code:boolean;
   vCodeZHOnly_4Code:boolean;
   vCodeZHOnly_5Code:boolean;
   vCodeZHOnly_6Code:boolean;
   vCodeZHOnly_7Code:boolean;
   vCodeZHOnly_8Code:boolean;
   vCodeZHOnly_222Code:boolean;
   vCodeZHOnly_333Code:boolean;
   vCodePreNDispCurDisp:boolean;
begin
   Ini := TIniFile.Create( ChangeFileExt( Application.ExeName, '.INI' ) );
   try
      vCodeZHOnly_3Code:=Ini.ReadBool( 'CodeZHOnly', '3CodeOnly', true);
      vCodeZHOnly_4Code:=Ini.ReadBool( 'CodeZHOnly', '4CodeOnly', true);
      vCodeZHOnly_5Code:=Ini.ReadBool( 'CodeZHOnly', '5CodeOnly', true);
      vCodeZHOnly_6Code:=Ini.ReadBool( 'CodeZHOnly', '6CodeOnly', true);
      vCodeZHOnly_7Code:=Ini.ReadBool( 'CodeZHOnly', '7CodeOnly', true);
      vCodeZHOnly_8Code:=Ini.ReadBool( 'CodeZHOnly', '8CodeOnly', true);
      vCodeZHOnly_222Code:=Ini.ReadBool( 'CodeZHOnly', '222CodeOnly', true);
      vCodeZHOnly_333Code:=Ini.ReadBool( 'CodeZHOnly', '333CodeOnly', true);

    //取开奖号码
    GetCodeFromFile;

    //设置全局变量值
    gl_HeadLineGridStartCol:=1;       //标题在表格中开始列
    gl_HeadLIneGridStartRow:=1;       //标题在表格中开始行
    gl_InfoStartCol:=1;               //分析内容开始列
    gl_InfoFirstStartRow:=3;          //分析内容第一部分开始行

    //背景颜色
    gl_BackColorList.clEndCodeBKColor:=TColor(RGB(177,255,155));
    gl_BackColorList.clColColorList[0]:=TColor(RGB(255,255,255));
    gl_BackColorList.clColColorList[1]:=TColor(RGB(227,221,255));
    gl_BackColorList.clColColorList[2]:=TColor(RGB(200,255,200));
    gl_BackColorList.clColColorList[3]:=TColor(RGB(253,217,255));
    gl_BackColorList.clSecondHeadLineBKColor:=cl3DLight;
    gl_BackColorList.clJunColor:=TColor(RGB(107,245,107));
    gl_BackColorList.clJianColor:=TColor(RGB(254,180,194));
    gl_BackColorList.clNoDisplayCount:=TColor(RGB(253,235,151));

    //根据开奖号,设置参数
    gl_InfoSecondStartRow:=gl_CodeList.CurCodeCount+10;  //分析内容第二部分开始行
    ZcPersistGrid.ColCount:=cnHeadLineMaxCount;  //表格列数
    ZcPersistGrid.RowCount:=gl_CodeList.CurCodeCount*2; //表格行数

    //三个号码分析是,默认三个号码都不同
    gl_Compages3CodeList.OnlgFlag:=vCodeZHOnly_3Code;
    for i:=0 to cnCompages3CodeMax-1 do
    begin
        gl_Compages3CodeList.Compages3CodeList[i].Code1:=-1;
        gl_Compages3CodeList.Compages3CodeList[i].Code2:=-1;
        gl_Compages3CodeList.Compages3CodeList[i].Code3:=-1;
        gl_Compages3CodeList.Compages3CodeList[i].Count:=0;
    end;

    //四个号码分析是,默认四个号码都不同
    gl_Compages4CodeList.OnlgFlag:=vCodeZHOnly_4Code;
    for i:=0 to cnCompages4CodeMax-1 do
    begin
        gl_Compages4CodeList.Compages4CodeList[i].Code1:=-1;
        gl_Compages4CodeList.Compages4CodeList[i].Code2:=-1;
        gl_Compages4CodeList.Compages4CodeList[i].Code3:=-1;
        gl_Compages4CodeList.Compages4CodeList[i].Code4:=-1;
        gl_Compages4CodeList.Compages4CodeList[i].Count:=0;
    end;

    //五个号码分析是,默认五个号码都不同
    gl_Compages5CodeList.OnlgFlag:=vCodeZHOnly_5Code;
    for i:=0 to cnCompages5CodeMax-1 do
    begin
        gl_Compages5CodeList.Compages5CodeList[i].Code1:=-1;
        gl_Compages5CodeList.Compages5CodeList[i].Code2:=-1;
        gl_Compages5CodeList.Compages5CodeList[i].Code3:=-1;
        gl_Compages5CodeList.Compages5CodeList[i].Code4:=-1;
        gl_Compages5CodeList.Compages5CodeList[i].Code5:=-1;
        gl_Compages5CodeList.Compages5CodeList[i].Count:=0;
    end;

⌨️ 快捷键说明

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