无忧启动论坛

标题: 曾经写的PECMD脚本年龄计算器怎么好出错? [打印本页]

作者: ge    时间: 2025-2-17 11:57
标题: 曾经写的PECMD脚本年龄计算器怎么好出错?
本帖最后由 ge 于 2025-2-17 17:01 编辑

版号│☆PECMD v2012.1.88     fix
TEAM ENVI^ ENVIMODE=1| ENVI^ FORCELOCAL=1
DOW1
_SUB DOW1,W368H388
    LABE LABE1,L12T12W72H24,生肖:,,,18
    EDIT Edit1,L84T12W30H30,,CALL DOW2,,,18
    LABE LABE2,L200T12W120H24,今年是:,,,18
    LABE LABE3,L328T12W72H24,年,,,18
    EDIT Edit2,L288T12W30H30,,,,,18
    ITEM BUTT1,L120T12W72H28,计算年龄,CALL DOW2
    MEMO MEMO1,L18T48W338H300,,,,,18
    DATE SJ
    LSTR JS=4,%SJ%
    CALC JN=MOD(%JS%,12)
    IFEX $%JN%=1,TEAM ENVI CZ=10| ENVI @Edit2=鸡
    IFEX $%JN%=2,TEAM ENVI CZ=11| ENVI @%Edit2=狗
    IFEX $%JN%=3,TEAM ENVI CZ=12| ENVI @%Edit2=猪
    IFEX $%JN%=4,TEAM ENVI CZ=1| ENVI @Edit2=鼠
    IFEX $%JN%=5,TEAM ENVI CZ=2| ENVI @Edit2=牛
    IFEX $%JN%=6,TEAM ENVI CZ=3| ENVI @Edit2=虎
    IFEX $%JN%=7,TEAM ENVI CZ=4| ENVI @Edit2=兔
    IFEX $%JN%=8,TEAM ENVI CZ=5| ENVI @Edit2=龙
    IFEX $%JN%=9,TEAM ENVI CZ=6| ENVI @Edit2=蛇
    IFEX $%JN%=10,TEAM ENVI CZ=7| ENVI @Edit2=马
    IFEX $%JN%=11,TEAM ENVI CZ=8| ENVI @Edit2=羊
    IFEX $%JN%=0,TEAM ENVI CZ=9| ENVI @Edit2=猴
_END

_SUB DOW2
    FIND $%Edit1%=鼠,ENVI JJ=1
    FIND $%Edit1%=牛,ENVI JJ=2
    FIND $%Edit1%=虎,ENVI JJ=3
    FIND $%Edit1%=兔,ENVI JJ=4
    FIND $%Edit1%=龙,ENVI JJ=5
    FIND $%Edit1%=蛇,ENVI JJ=6
    FIND $%Edit1%=马,ENVI JJ=7
    FIND $%Edit1%=羊,ENVI JJ=8
    FIND $%Edit1%=猴,ENVI JJ=9
    FIND $%Edit1%=鸡,ENVI JJ=10
    FIND $%Edit1%=狗,ENVI JJ=11
    FIND $%Edit1%=猪,ENVI JJ=12
    ENVI SZ=
    ENVI XH=144
    LOOP %XH%>=0,TEAM CALC BMN=%JS%+%JJ%-%XH%-%CZ%| CALC JG=%JS%-%BMN%| CALC XH=%XH%-12| ENVI SZ=  本命年:%BMN%  年龄:%JG%\n%SZ%
    ENVI @MEMO1=%SZ%
_END
想要的是在输入框里面输入属相,然后回车就可以在编辑框里面输出多行的是哪年的,多大了。但是结果有的时候就不准确,不知道为什么?


作者: 红毛樱木    时间: 2025-2-17 17:48
一瞪眼看   Edit1  没有判断非属相的输入
作者: ge    时间: 2025-2-17 19:42
红毛樱木 发表于 2025-2-17 17:48
一瞪眼看   Edit1  没有判断非属相的输入

謝謝指教!怎樣才能解決呀?
作者: 红毛樱木    时间: 2025-2-17 21:30
ge 发表于 2025-2-17 19:42
謝謝指教!怎樣才能解決呀?
  1. TEAM ENVI^ ENVIMODE=1| ENVI^ FORCELOCAL=1
  2. DOW1
  3. _SUB DOW1,W368H388
  4.     LABE LABE1,L12T12W72H24,生肖:,,,18
  5.     EDIT Edit1,L84T12W30H30,,CALL DOW2,,,18
  6.     LABE LABE2,L200T12W120H24,今年是:,,,18
  7.     LABE LABE3,L328T12W72H24,年,,,18
  8.     EDIT Edit2,L288T12W30H30,,,-,,18
  9.     ITEM BUTT1,L120T12W72H28,计算年龄,CALL DOW2
  10.     MEMO MEMO1,L18T48W338H300,,,,,18
  11.     DATE JS y
  12.     CALC JN=MOD(%JS%,12)
  13.     IFEX $%JN%=1,TEAM ENVI CZ=10| ENVI @Edit2=鸡
  14.     IFEX $%JN%=2,TEAM ENVI CZ=11| ENVI @%Edit2=狗
  15.     IFEX $%JN%=3,TEAM ENVI CZ=12| ENVI @%Edit2=猪
  16.     IFEX $%JN%=4,TEAM ENVI CZ=1| ENVI @Edit2=鼠
  17.     IFEX $%JN%=5,TEAM ENVI CZ=2| ENVI @Edit2=牛
  18.     IFEX $%JN%=6,TEAM ENVI CZ=3| ENVI @Edit2=虎
  19.     IFEX $%JN%=7,TEAM ENVI CZ=4| ENVI @Edit2=兔
  20.     IFEX $%JN%=8,TEAM ENVI CZ=5| ENVI @Edit2=龙
  21.     IFEX $%JN%=9,TEAM ENVI CZ=6| ENVI @Edit2=蛇
  22.     IFEX $%JN%=10,TEAM ENVI CZ=7| ENVI @Edit2=马
  23.     IFEX $%JN%=11,TEAM ENVI CZ=8| ENVI @Edit2=羊
  24.     IFEX $%JN%=0,TEAM ENVI CZ=9| ENVI @Edit2=猴
  25. _END

  26. _SUB DOW2
  27.     ENVI JJ=0
  28.     FIND $%Edit1%=鼠,ENVI JJ=1
  29.     FIND $%Edit1%=牛,ENVI JJ=2
  30.     FIND $%Edit1%=虎,ENVI JJ=3
  31.     FIND $%Edit1%=兔,ENVI JJ=4
  32.     FIND $%Edit1%=龙,ENVI JJ=5
  33.     FIND $%Edit1%=蛇,ENVI JJ=6
  34.     FIND $%Edit1%=马,ENVI JJ=7
  35.     FIND $%Edit1%=羊,ENVI JJ=8
  36.     FIND $%Edit1%=猴,ENVI JJ=9
  37.     FIND $%Edit1%=鸡,ENVI JJ=10
  38.     FIND $%Edit1%=狗,ENVI JJ=11
  39.     FIND $%Edit1%=猪,ENVI JJ=12
  40.     IFEX #%JJ%>0,
  41.     {*
  42.         ENVI SZ=
  43.         ENVI XH=144
  44.         LOOP %XH%>=0,TEAM CALC BMN=%JS%+%JJ%-%XH%-%CZ%| CALC JG=%JS%-%BMN%| CALC XH=%XH%-12| ENVI SZ=  本命年:%BMN%  年龄:%JG%\n%SZ%
  45.         ENVI @MEMO1=%SZ%
  46.     }!  
  47.     {*
  48.         ENVI @MEMO1=请输入正确的属相!!!
  49.     }
  50. _END
复制代码

作者: ge    时间: 2025-2-18 15:19
本帖最后由 ge 于 2025-2-18 15:28 编辑
谢谢!我刚才弄错了,以为JJ的值可以不用呢,结果不行


作者: ge    时间: 2025-2-18 15:28
红毛樱木 发表于 2025-2-17 21:30

谢谢!我刚才弄错了,以为JJ的值可以不用呢,结果不行
作者: yyz2191958    时间: 2025-3-4 13:15
能不能弄一个:输入岁数,显示属相的 谢谢
作者: ge    时间: 2025-3-4 18:25
yyz2191958 发表于 2025-3-4 13:15
能不能弄一个:输入岁数,显示属相的 谢谢

這個和我的差不多呀,用計算方法就可以了呀!
作者: yyz2191958    时间: 2025-3-4 18:30
ge 发表于 2025-3-4 18:25
這個和我的差不多呀,用計算方法就可以了呀!

我不晓得,麻烦你弄一个好吗?谢谢
作者: ge    时间: 2025-3-4 18:34
yyz2191958 发表于 2025-3-4 18:30
我不晓得,麻烦你弄一个好吗?谢谢

好的!我當時也都不懂,多看看命令幫助,還有人家的腳本,就學到了一些,現在也有不懂的,但是也學到了,要多看,多動手
作者: ge    时间: 2025-3-4 18:35
yyz2191958 发表于 2025-3-4 18:30
我不晓得,麻烦你弄一个好吗?谢谢

我明天看看
作者: ge    时间: 2025-3-4 18:35
我知道問題了,是限制回復間隔,這是為什麽呢?為什麽要限制?
作者: yyz2191958    时间: 2025-3-4 18:37
ge 发表于 2025-3-4 18:35
我明天看看

好的 谢谢
作者: ge    时间: 2025-3-5 11:25
yyz2191958 发表于 2025-3-4 13:15
能不能弄一个:输入岁数,显示属相的 谢谢

改好了!电脑不好使了,也没有找到问题,才弄好,有的我也忘记了,又找的FIND和IFEX的区别都不知道了,还有单选框是怎么判断状态的
  1. TEAM ENVI^ ENVIMODE=1| ENVI^ FORCELOCAL=1
  2. DOW1
  3. _SUB DOW1,W380H98
  4.     LABE LABE1,L12T18W152H24,请输入年龄:,,,18
  5.     EDIT Edit1,L144T16W44H30,,CALL DOW2,,,18
  6.     RADI Radio1,L196T10W40H20,周岁,CALL DOW2,0
  7.     RADI Radio2,L196T34W40H20,虚岁,CALL DOW2,1
  8.     LABE LABE2,L240T18W100H24,属相是:,,,18
  9.     EDIT Edit2,L328T16W30H30,,,-,,18
  10. _END

  11. _SUB DOW2
  12.     DATE JY y
  13.     IFEX $%Radio1.Check%=1,ENVI NL=%Edit1%! ENVI NL=%Edit1%+1
  14.     CALC JS=%JY%-%NL%
  15.     CALC JN=MOD(%JS%,12)
  16.     IFEX $%JN%=1,ENVI @Edit2=鸡
  17.     IFEX $%JN%=2,ENVI @%Edit2=狗
  18.     IFEX $%JN%=3,ENVI @%Edit2=猪
  19.     IFEX $%JN%=4,ENVI @Edit2=鼠
  20.     IFEX $%JN%=5,ENVI @Edit2=牛
  21.     IFEX $%JN%=6,ENVI @Edit2=虎
  22.     IFEX $%JN%=7,ENVI @Edit2=兔
  23.     IFEX $%JN%=8,ENVI @Edit2=龙
  24.     IFEX $%JN%=9,ENVI @Edit2=蛇
  25.     IFEX $%JN%=10,ENVI @Edit2=马
  26.     IFEX $%JN%=11,ENVI @Edit2=羊
  27.     IFEX $%JN%=0,ENVI @Edit2=猴
  28. _END
复制代码



作者: yyz2191958    时间: 2025-3-5 11:35
ge 发表于 2025-3-5 11:25
改好了!电脑不好使了,也没有找到问题,才弄好,有的我也忘记了,又找的FIND和IFEX的区别都不知道了,还 ...

非常感谢
作者: yyz2191958    时间: 2025-3-5 11:46
ge 发表于 2025-3-5 11:25
改好了!电脑不好使了,也没有找到问题,才弄好,有的我也忘记了,又找的FIND和IFEX的区别都不知道了,还 ...

有BUG,比如 67、68 虚岁就没有显示,能不能修改一下谢谢
作者: yyz2191958    时间: 2025-3-5 12:34
问题发现了:
IFEX $%JN%=2,ENVI @%Edit2=狗
IFEX $%JN%=3,ENVI @%Edit2=猪

多了:%
=======================
下面就行了:
TEAM ENVI^ ENVIMODE=1| ENVI^ FORCELOCAL=1
DOW1
_SUB DOW1,W380H98
    LABE LABE1,L12T18W152H24,请输入年龄:,,,18
    EDIT Edit1,L144T16W44H30,,CALL DOW2,,,18
    RADI Radio1,L196T10W40H20,周岁,CALL DOW2,1
    RADI Radio2,L196T34W40H20,虚岁,CALL DOW2,0
    LABE LABE2,L240T18W100H24,属相是:,,,18
    EDIT Edit2,L328T16W30H30,,,-,,18
_END

_SUB DOW2
    DATE JY y
    IFEX $%Radio1.Check%=1,ENVI NL=%Edit1%! ENVI NL=%Edit1%+1
    CALC JS=%JY%-%NL%
    CALC JN=MOD(%JS%,12)
    IFEX $%JN%=1,ENVI @Edit2=鸡
    IFEX $%JN%=2,ENVI @Edit2=狗
    IFEX $%JN%=3,ENVI @Edit2=猪
    IFEX $%JN%=4,ENVI @Edit2=鼠
    IFEX $%JN%=5,ENVI @Edit2=牛
    IFEX $%JN%=6,ENVI @Edit2=虎
    IFEX $%JN%=7,ENVI @Edit2=兔
    IFEX $%JN%=8,ENVI @Edit2=龙
    IFEX $%JN%=9,ENVI @Edit2=蛇
    IFEX $%JN%=10,ENVI @Edit2=马
    IFEX $%JN%=11,ENVI @Edit2=羊
    IFEX $%JN%=0,ENVI @Edit2=猴
_END
作者: ge    时间: 2025-3-5 12:59
yyz2191958 发表于 2025-3-5 11:46
有BUG,比如 67、68 虚岁就没有显示,能不能修改一下谢谢

我這正常呀!
作者: ge    时间: 2025-3-5 13:02
yyz2191958 发表于 2025-3-5 12:34
问题发现了:
IFEX $%JN%=2,ENVI @%Edit2=狗
IFEX $%JN%=3,ENVI @%Edit2=猪

好像是多餘的,以前看到了,沒有注意,把%去掉吧
作者: ge    时间: 2025-3-5 13:03
yyz2191958 发表于 2025-3-5 11:35
非常感谢

客氣了!這沒有什麼,多看看幫助和實例就差不多了
作者: ge    时间: 2025-3-5 13:09
yyz2191958 发表于 2025-3-5 12:34
问题发现了:
IFEX $%JN%=2,ENVI @%Edit2=狗
IFEX $%JN%=3,ENVI @%Edit2=猪

67/68是不是屬狗和豬的?在控件名前多了個%就不正常了?




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3