标题:能不能有个简便的写法
只看楼主
hytizj023
Rank: 1
等 级:新手上路
帖 子:166
专家分:7
注 册:2023-3-2
结帖率:100%
已结贴  问题点数:17 回复次数:10 
能不能有个简便的写法

如图:福彩3D软件

先获取开奖号
如果开奖号是123,就在零到九字段,写入:①②③【字段一:①,字段二:②,字段三:③,其他字段都填充成空 ' '  】
〇①②③④⑤⑥⑦⑧⑨
由于基础有点差,想不出太简便的方法,不知道各位能不能帮帮忙,如果逐一写,程序会太长。

clear
PUBLIC nhandle
nhandle=sqlstringconnect("driver=sql server;server=127.0.0.1;uid=sa;pwd=123456;database=3D")

sqlexec(nHandle,"select * from 基础数据 ","本地数据")
SELECT 本地数据
zjl=RECCOUNT()

FOR i=1 TO zjl

SCATTER TO b
c1=b(1)
c2=b(6)
GO i

a=left(c6,1)&&取左边第一位获取百位
shi=LEFT(c6,2)&&取前两位
b=RIGHT(shi,1)&&取右边第一位获取十位
c=RIGHT(c6,1)&&个位



if a=0
sqlexec(nHandle,"update 基础数据 set 零='〇' where 期号=?c1")
sqlexec(nHandle,"update 基础数据 set 一='' where 期号=?c1")
sqlexec(nHandle,"update 基础数据 set 二='' where 期号=?c1")
sqlexec(nHandle,"update 基础数据 set 三='' where 期号=?c1")
sqlexec(nHandle,"update 基础数据 set 四='' where 期号=?c1")
sqlexec(nHandle,"update 基础数据 set 五='' where 期号=?c1")
sqlexec(nHandle,"update 基础数据 set 六='' where 期号=?c1")
sqlexec(nHandle,"update 基础数据 set 七='' where 期号=?c1")
sqlexec(nHandle,"update 基础数据 set 八='' where 期号=?c1")
sqlexec(nHandle,"update 基础数据 set 九='' where 期号=?c1")
endif

if a=1
sqlexec(nHandle,"update 基础数据 set 零='' where 期号=?c1")
sqlexec(nHandle,"update 基础数据 set 一='①' where 期号=?c1")
sqlexec(nHandle,"update 基础数据 set 二='' where 期号=?c1")
sqlexec(nHandle,"update 基础数据 set 三='' where 期号=?c1")
sqlexec(nHandle,"update 基础数据 set 四='' where 期号=?c1")
sqlexec(nHandle,"update 基础数据 set 五='' where 期号=?c1")
sqlexec(nHandle,"update 基础数据 set 六='' where 期号=?c1")
sqlexec(nHandle,"update 基础数据 set 七='' where 期号=?c1")
sqlexec(nHandle,"update 基础数据 set 八='' where 期号=?c1")
sqlexec(nHandle,"update 基础数据 set 九='' where 期号=?c1")
endif


这样写,是不是太低级了

ENDFOR
搜索更多相关主题的帖子: set 数据 where update 基础 
2023-03-22 21:11
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:2 
能解决问题就行。看样子楼主是在做商业软件啊!

坚守VFP最后的阵地
2023-03-22 21:28
hytizj023
Rank: 1
等 级:新手上路
帖 子:166
专家分:7
注 册:2023-3-2
得分:0 
以下是引用sdta在2023-3-22 21:28:41的发言:

能解决问题就行。看样子楼主是在做商业软件啊!

不做商业软件,我打算自己用,要把他开发完,估计得还要在论坛上发不少帖子,等开发完毕后,我会分享出来。只是自己做一个分析软件而已,脑壳都整痛了,每天都是计算
2023-03-22 21:32
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:2 
自己用还要网络版?

坚守VFP最后的阵地
2023-03-22 21:41
hytizj023
Rank: 1
等 级:新手上路
帖 子:166
专家分:7
注 册:2023-3-2
得分:0 
以下是引用sdta在2023-3-22 21:41:17的发言:

自己用还要网络版?

我要发给我朋友,我们一起用,所以要网络版,我们要交换数据
2023-03-22 21:47
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:2 
先写单机版,等熟练掌握了VFP编程,再写网络版!

坚守VFP最后的阵地
2023-03-22 21:50
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:2 
1楼的代码能正常运行吗

坚守VFP最后的阵地
2023-03-22 22:25
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:4 
试试这样行不行(估计速度奇慢)

sqlexec(nHandle,"update 基础数据 set 零=iif(a="0",'〇','') where 期号=?c1")
sqlexec(nHandle,"update 基础数据 set 一=iif(a="1",'①','') where 期号=?c1")
sqlexec(nHandle,"update 基础数据 set 二=iif(a="2",'②','') where 期号=?c1")
sqlexec(nHandle,"update 基础数据 set 三=iif(a="3",'③','') where 期号=?c1")
sqlexec(nHandle,"update 基础数据 set 四=iif(a="4",'④','') where 期号=?c1")
sqlexec(nHandle,"update 基础数据 set 五=iif(a="5",'⑤','') where 期号=?c1")
sqlexec(nHandle,"update 基础数据 set 六=iif(a="6",'⑥','') where 期号=?c1")
sqlexec(nHandle,"update 基础数据 set 七=iif(a="7",'⑦','') where 期号=?c1")
sqlexec(nHandle,"update 基础数据 set 八=iif(a="8",'⑧','') where 期号=?c1")
sqlexec(nHandle,"update 基础数据 set 九=iif(a="9",'⑨','') where 期号=?c1")


[此贴子已经被作者于2023-3-22 22:42编辑过]


坚守VFP最后的阵地
2023-03-22 22:38
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:2 
把8楼的,写成1条来发送,可能会快点

TEXT TO upStr NOSHOW TEXTMERGE PRETEXT 4
update 基础数据 set
 零 = '<< iif(a="0",'〇','') >> ',
 一 = '<< iif(a="1",'①','') >>',
 二 = '<< iif(a="2",'②','') >> ',
 三 = '<< iif(a="3",'③','') >> ',
 四 = '<< iif(a="4",'④','') >> ',
 五 = '<< iif(a="5",'⑤','') >> ',
 六 = '<< iif(a="6",'⑥','') >> ',
 七 = '<< iif(a="7",'⑦','') >> ',
 八 = '<< iif(a="8",'⑧','') >> ',
 九 = '<< iif(a="9",'⑨','') >> '
 where 期号 = '<<c1>> '
ENDTEXT
sqlexec(nHandle,upStr)

2023-03-22 23:07
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:2 
另外,在VFP中,尽量不要用1个字符做变量名称
如上面的
a=left(c6,1)&&取左边第一位获取百位
shi=LEFT(c6,2)&&取前两位
b=RIGHT(shi,1)&&取右边第一位获取十位
c=RIGHT(c6,1)&&个位
宁愿多几个字符
aa1 = left(c6,1)&&取左边第一位获取百位
shi = LEFT(c6,2)&&取前两位
bb1 = RIGHT(shi,1)&&取右边第一位获取十位
cc1 = RIGHT(c6,1)&&个位
2023-03-22 23:13



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-511640-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.052439 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved