📄 form_techanalysel.pas
字号:
grid3_1.Cells[1,5].ForeText:='本期散度';
grid3_1.SetMerges(rect(2,5,grid3_1.ColCount-1,5));
///////////////////////////////
grid3_1.SetMerges(rect(1,6,1,15));
grid3_1.Cells[1,6].ForeText:='下期偏度';
grid3_1.Cells[2,6].ForeText:='偏度值';
grid3_1.SetMerges(rect(3,6,5,6));
grid3_1.Cells[3,6].ForeText:='计算得到的号码';
grid3_1.ColWidths[3]:=150;
grid3_1.ColWidths[4]:=150;
grid3_1.ColWidths[5]:=150;
grid3_1.Cells[6,6].ForeText:='必出号码';
grid3_1.ColWidths[6]:=120;
///////显示数据///////////////////////////////////////
///////得到上期的期号/////////////////
/////取得最大的期号/////////////////////////
with AdoQuery1 do
begin
connectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+CurrentPath+'\sale.mdb;Persist Security Info=False';
close;
sql.Clear;
sql.Add('Select Top 1 * From CPData order by sID desc');
prepared;
open;
if recordcount<>0 then
begin
sMax:=FieldByName('sID').AsString;
end;//if
end;////with
grid3_1.Cells[2,2].ForeText:=trim(sMax);
///////得到本期的开奖号码///////////////////////////
with AdoQuery1 do
begin
connectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+CurrentPath+'\sale.mdb;Persist Security Info=False';
close;
sql.Clear;
sql.Add('Select * From CPData Where sID=:sID');
parameters.ParamByName('sID').Value:=trim(sMax);
prepared;
open;
if recordcount<>0 then
begin
grid3_1.Cells[2,3].ForeText:=FieldByName('r1').AsString;
grid3_1.Cells[3,3].ForeText:=FieldByName('r2').AsString;
grid3_1.Cells[4,3].ForeText:=FieldByName('r3').AsString;
grid3_1.Cells[5,3].ForeText:=FieldByName('r4').AsString;
grid3_1.Cells[6,3].ForeText:=FieldByName('r5').AsString;
grid3_1.Cells[7,3].ForeText:=FieldByName('r6').AsString;
end;//if
end;////with
///(一)/////计算本期号码的偏度////////////////////////////
///showmessage(formatFloat('##0',strToInt(sMax)-1));
//////得到偏度首先得到上期的开奖号码////////////////////
with AdoQuery1 do
begin
connectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+CurrentPath+'\sale.mdb;Persist Security Info=False';
close;
sql.Clear;
sql.Add('Select * From CPData Where sID=:sID');
parameters.ParamByName('sID').Value:=formatFloat('##0',strToInt(sMax)-1);
prepared;
open;
if recordcount<>0 then
begin
_LastID[1]:=FieldByName('r1').AsInteger;
_LastID[2]:=FieldByName('r2').AsInteger;
_LastID[3]:=FieldByName('r3').AsInteger;
_LastID[4]:=FieldByName('r4').AsInteger;
_LastID[5]:=FieldByName('r5').AsInteger;
_LastID[6]:=FieldByName('r6').AsInteger;
end;//if
end;////with
//////计算偏度(用本期的号码与上期号码相减)////////////////////
_LeastValue1:=TStringlist.Create;
_LeastValue2:=TStringlist.Create;
_LeastValue3:=TStringlist.Create;
_LeastValue4:=TStringlist.Create;
_LeastValue5:=TStringlist.Create;
_LeastValue6:=TStringlist.Create;
_LeastValue7:=TStringlist.Create;
for i:=1 to 6 do
begin
//showmessage(inttostr(_lastID[i]));
//_LeastValue1.Add(formatFloat('##0',abs(strToInt(Grid3_1.cells[2,3].foretext)-_lastID[i])));
if abs(strToInt(Grid3_1.cells[2,3].foretext)-_lastID[i])<10 then
begin
_LeastValue1.Add('0'+formatFloat('##0',abs(strToInt(Grid3_1.cells[2,3].foretext)-_lastID[i])));
end
else
_LeastValue1.Add(formatFloat('##0',abs(strToInt(Grid3_1.cells[2,3].foretext)-_lastID[i])));
/////
if abs(strToInt(Grid3_1.cells[3,3].foretext)-_lastID[i])<10 then
begin
_LeastValue2.Add('0'+formatFloat('##0',abs(strToInt(Grid3_1.cells[3,3].foretext)-_lastID[i])));
end
else
_LeastValue2.Add(formatFloat('##0',abs(strToInt(Grid3_1.cells[3,3].foretext)-_lastID[i])));
/////
if abs(strToInt(Grid3_1.cells[4,3].foretext)-_lastID[i])<10 then
begin
_LeastValue3.Add('0'+formatFloat('##0',abs(strToInt(Grid3_1.cells[4,3].foretext)-_lastID[i])));
end
else
_LeastValue3.Add(formatFloat('##0',abs(strToInt(Grid3_1.cells[4,3].foretext)-_lastID[i])));
//////
if abs(strToInt(Grid3_1.cells[5,3].foretext)-_lastID[i])<10 then
begin
_LeastValue4.Add('0'+formatFloat('##0',abs(strToInt(Grid3_1.cells[5,3].foretext)-_lastID[i])));
end
else
_LeastValue4.Add(formatFloat('##0',abs(strToInt(Grid3_1.cells[5,3].foretext)-_lastID[i])));
////
if abs(strToInt(Grid3_1.cells[6,3].foretext)-_lastID[i])<10 then
begin
_LeastValue5.Add('0'+formatFloat('##0',abs(strToInt(Grid3_1.cells[6,3].foretext)-_lastID[i])));
end
else
_LeastValue5.Add(formatFloat('##0',abs(strToInt(Grid3_1.cells[6,3].foretext)-_lastID[i])));
//////
if abs(strToInt(Grid3_1.cells[7,3].foretext)-_lastID[i])<10 then
begin
_LeastValue6.Add('0'+formatFloat('##0',abs(strToInt(Grid3_1.cells[7,3].foretext)-_lastID[i])));
end
else
_LeastValue6.Add(formatFloat('##0',abs(strToInt(Grid3_1.cells[7,3].foretext)-_lastID[i])));
end;////
_LeastValue1.Sort;
_LeastValue2.Sort;
_LeastValue3.Sort;
_LeastValue4.Sort;
_LeastValue5.Sort;
_LeastValue6.Sort;
_leastValue7.Clear;
_LeastValue7.Add(_leastvalue1[0]);
//showmessage(_leastvalue2[0]);
_LeastValue7.Add(_leastvalue2[0]);
_LeastValue7.Add(_leastvalue3[0]);
_LeastValue7.Add(_leastvalue4[0]);
//showmessage(_leastvalue2[0]);
_LeastValue7.Add(_leastvalue5[0]);
_LeastValue7.Add(_leastvalue6[0]);
_LeastValue7.Sort;
grid3_1.cells[2,4].ForeText:=_LeastValue7[_leastValue7.count-1];
////(二)计算本期号码的散度///////////////////////////
grid3_1.Cells[2,5].ForeText:=trim(grid1.cells[11,grid1.rowcount-1].foretext);
/////计算各个偏度时的号码////////////////////////////
for i:=0 to 6 do
begin
grid3_1.Cells[2,i+7].ForeText:=formatFloat('##0',strtoint(trim(grid3_1.Cells[2,5].ForeText))-i);
end;//
///////////////
for j:=1 to 7 do
begin
for i:=1 to 7 do
begin
_LeastPDValue[j,i]:=TStringList.Create;
//_LeastPDValue1[i]:=TStringList.Create;
end;///
end;
for j:=0 to 6 do
begin
for i:=1 to 6 do
begin
//////相减////////////
if (abs(strToInt(grid3_1.cells[2,j+7].foretext)-strToInt(grid3_1.cells[i+1,3].foretext))>0) and (abs(strToInt(grid3_1.cells[2,j+7].foretext)-strToInt(grid3_1.cells[i+1,3].foretext))<10) then
begin
_LeastPDValue[1,j+1].Add('0'+formatFloat('##0',abs(strToInt(grid3_1.cells[2,j+7].foretext)-strToInt(grid3_1.cells[i+1,3].foretext))));
end
else
begin
//if (abs(strToInt(grid3_1.cells[2,j+7].foretext)-strToInt(grid3_1.cells[i+1,3].foretext))>0) then
//begin
_LeastPDValue[1,j+1].Add(formatFloat('##0',abs(strToInt(grid3_1.cells[2,j+7].foretext)-strToInt(grid3_1.cells[i+1,3].foretext))));
// end;
end;
/////相加////////////////
if (abs(strToInt(grid3_1.cells[2,j+7].foretext)+strToInt(grid3_1.cells[i+1,3].foretext))<10) and (abs(strToInt(grid3_1.cells[2,j+7].foretext)+strToInt(grid3_1.cells[i+1,3].foretext))<34) then
begin
_LeastPDValue[2,j+1].Add('0'+formatFloat('##0',abs(strToInt(grid3_1.cells[2,j+7].foretext)+strToInt(grid3_1.cells[i+1,3].foretext))));
end
else
_LeastPDValue[2,j+1].Add(formatFloat('##0',abs(strToInt(grid3_1.cells[2,j+7].foretext)+strToInt(grid3_1.cells[i+1,3].foretext))));
end;////for i
end;//forj
//showmessage(_LeastPDValue[1,2].text);
//showmessage(_LeastPDValue[2,2].text);
///////////////////////////////
for i:=1 to 7 do
begin
_LeastPDValue1[i]:=TStringList.Create;
end;///
/////将相减,想夹得到数据合并加入到_LeastPDValue1[]
for j:=0 to 6 do
begin
for i:=0 to 5 do
begin
if pos(_LeastPDValue[1,j+1][i],_LeastPDValue1[j+1].Text)>0 then
begin
end
else
_LeastPDValue1[j+1].Add(_LeastPDValue[1,j+1][i]);
if pos(_LeastPDValue[2,j+1][i],_LeastPDValue1[j+1].Text)>0 then
begin
end
else
_LeastPDValue1[j+1].Add(_LeastPDValue[2,j+1][i]);
end; ///fori
end;//forj
for i:=1 to 7 do
begin
_LeastPDValue1[i].Sort;
end;
//showmessage(_LeastPDValue1[2].Text);
/////将合并后数值分区///////////////////////////////
for i:=1 to 7 do
begin
_Area1_Value[i]:=TStringList.Create;
_Area2_Value[i]:=TStringList.Create;
_Area3_Value[i]:=TStringList.Create;
_Area1_Value[i].Clear;
_Area2_Value[i].Clear;
_Area3_Value[i].Clear;
end;
for i:=0 to 6 do
begin
for j:=0 to _LeastPDValue1[i+1].Count-1 do
begin
////一区/////
if (strToInt(_LeastPDValue1[i+1][j])>0) and (strToInt(_LeastPDValue1[i+1][j])<12) then
begin
_Area1_Value[i+1].Add(_LeastPDValue1[i+1][j])
end;
/////二区////////
if (strToInt(_LeastPDValue1[i+1][j])>=12) and (strToInt(_LeastPDValue1[i+1][j])<23) then
begin
_Area2_Value[i+1].Add(_LeastPDValue1[i+1][j])
end;
/////三区////////
if (strToInt(_LeastPDValue1[i+1][j])>=23) and (strToInt(_LeastPDValue1[i+1][j])<34) then
begin
_Area3_Value[i+1].Add(_LeastPDValue1[i+1][j])
end;
end;
end;///
for i:=1 to 7 do
begin
for j:=0 to _Area1_Value[i].Count-1 do
begin
_Area1[i]:=_Area1[i]+trim(_Area1_Value[i][j])+' ';
end;
for j:=0 to _Area2_Value[i].Count-1 do
begin
_Area2[i]:=_Area2[i]+trim(_Area2_Value[i][j])+' ';
end;
for j:=0 to _Area3_Value[i].Count-1 do
begin
_Area3[i]:=_Area3[i]+trim(_Area3_Value[i][j])+' ';
end;
Grid3_1.Cells[3,i+6].ForeText:=trim(_Area1[i]);
Grid3_1.Cells[4,i+6].ForeText:=trim(_Area2[i]);
Grid3_1.Cells[5,i+6].ForeText:=trim(_Area3[i]);
end;//
//showmessage(_Area1_Value.text);
/////得出等于偏度值的数值///////////////////////////
for i:=1 to 7 do
begin
_EqualPD[i]:=TStringList.Create;
_EqualPD[i].Clear;
_EqualPD1[i]:=TStringList.Create;
_EqualPD1[i].Clear;
end;///i
for i:=1 to 6 do
begin
_R[i]:=strToInt(Grid3_1.cells[i+1,3].foretext);
end;///
//showmessage(_LeastPDValue1[2].text);
/////过滤出必出号码将添入_EqualPD[]中///////////////////////////
for i:=1 to 7 do
begin
for j:=0 to _LeastPDValue1[i].Count-1 do
begin
if (strToInt(_LeastPDValue1[i][j])>0) and (strToInt(_LeastPDValue1[i][j])<34) then
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -