以下是引用csyx在2023-4-10 17:58:09的发言:
试试是不是这个意思?
感谢楼主就是这个意思,但我级别有限没太看懂,能不能帮我改一下我的程序
我的程序如下:
a=ALLTRIM(thisform.pageframe1.page1.text1.Value)
SELECT * from 本地数据 WHERE 期号 like "%"+a INTO CURSOR 历史
...............
我用的sql数据库
常规字段,我是做其他用处的
字段如下:和上面的一样
表名称:历史统计双飞
历史表:字段说明:
SCATTER TO C
d1=c(1)&&期号
d2=c(42)&&组选号
其实你只需要根据组选号判断就行了,组选号是我排好了的奖号(从小到大)组选号为:C,因为有0开头
奖号只有3位,这个是固定的
奖号:123 双飞:12 13 23 ,奖号:558 双飞:55 58 奖号:999 双飞:99 &&双飞只有这几种情况没别的
下面附上你的代码,方便你修改
程序代码:
c期号 = '089' && 要统计的期号
*-- 建模拟数据表
Create Cursor 历史记录 (期号 V(10), 奖号 C(3))
Insert into 历史记录 (期号, 奖号) Values ('2002089', '956')&&569 56 59 69
Insert into 历史记录 (期号, 奖号) Values ('2003089', '516')&&156 15 16 56
Insert into 历史记录 (期号, 奖号) Values ('2004089', '191')&&119 11 19
Insert into 历史记录 (期号, 奖号) Values ('2005089', '885')&&588 58 88
Insert into 历史记录 (期号, 奖号) Values ('2006089', '910')&&019 01 09 19
If Used('shuangfei')
Select shuangfei
Locate for 期号 == c期号
Blank next 1
Replace next 1 期号 with c期号
Else
cDesc = '零零,零一,零二,零三,零四,零五,零六,零七,零八,零九' ;
+ ',一一,一二,一三,一四,一五,一六,一七,一八,一九' ;
+ ',二二,二三,二四,二五,二六,二七,二八,二九' ;
+ ',三三,三四,三五,三六,三七,三八,三九' ;
+ '四四,四五,四六,四七,四八,四九' ;
+ ',五五,五六,五七,五八,五九' ;
+ ',六六,六七,六八,六九' ;
+ ',七七,七八,七九,八八,八九,九九'
cFlds = '期号 C(3)'
For ii = 1 to ALines(aTemp, cDesc, 1+4, ',')
cFlds = cFlds + ',' + aTemp[ii] + ' I'
EndFor
Create Cursor shuangfei (&cFlds)
Insert into shuangfei (期号) Values (c期号)
EndIf
*-- 开始干活儿, 提取数据填入双飞统计表
Select 奖号 from 历史记录 where 期号 like '%' + c期号 into array a奖号s
n期数 = _Tally
For ii = 1 to n期数
Dimension a奖号[3] && 开奖号是否恒定是三位数 ?
a奖号[1] = Substr(a奖号s[ii], 1, 1)
a奖号[2] = Substr(a奖号s[ii], 2, 1)
a奖号[3] = Substr(a奖号s[ii], 3, 1)
Asort(a奖号) && 现在 X <= Y <= Z
c组选号 = a奖号[1] + a奖号[2] + a奖号[3]
c双飞号 = Chrtran('XY,XZ,YZ', 'XYZ', c组选号) && 不太懂,应该就这三种组合吧?
For jj = ALines(a双飞号, c双飞号, 1+4, ',') to 2 step -1
If a双飞号[jj] == a双飞号[jj-1] && 去重
a双飞号[jj] = ''
EndIf
ENDFOR
For jj = 1 to Alen(a双飞号)
If Empty(a双飞号[jj])
Loop
EndIf
c双飞号 = Chrtranc(a双飞号[jj], '0123456789', '零一二三四五六七八九')
If Empty(Field(c双飞号, 'shuangfei'))
MessageBox('shuangfei 表不存在 ' + c双飞号 + ' 字段')
Else
Update shuangfei set &c双飞号 = &c双飞号 + 1 where 期号 == c期号
EndIf
EndFor
EndFor
Browse
[此贴子已经被作者于2023-4-10 20:28编辑过]