程式问题(7)

Home Home
引用 | 编辑 black_jack
2007-07-09 12:38
楼主
推文 x0
B. 是否可reset变数列表内的所有变数?有时不希望保留旧的变数或旧的值,而能和最新的程式同步. 不然还可能输出错误结果!!(尤其是有需要判断变数是否存在时)

C. 之前你回覆的Script,我试了一下,竟然有'ScriptError'!!
     <%
           int i;
           {
           i = #{生年支}#;

           AccProgSet('a=' + inttostr(i)); // 同命理程式 [设定:], 可将 Script 的 i 变数设定到命理程式的 a 变数内.
           }
     %>
D. 设定: 本卦#{卦爻$(i)}#的入墓 = 本卦#{卦爻$(i)}#的入墓 + ''卜卦月支','
  这种动态设定的变数, 原来以为这样作就一劳永逸, 但没考虑到第一次执行时因为变数本来不存在,所以不能直接累加. 改成如下:
     如果:变数存在(本卦#{卦爻$(i)}#的入墓)
           否则:
            设定:本卦#{卦爻$(i)}#的入墓 = ''卜卦月支','
     设定: 本卦#{卦爻$(i)}#的入墓 = 本卦#{卦爻$(i)}#的入墓 + ''卜卦月支','
  想把它改成Script的方式,不然每次遇到动态设定的变数都要有一堆字. 请问该怎么改? 另外,ACCProgIF()要怎么用?
E. 假设一变数 str='ab,bc,def,gh', 要分别取出'ab','bc','def','gh',即以','为分隔,该怎么做?

献花 x0
引用 | 编辑 mainchen
2007-07-10 08:42
1楼
  
B. 是否可reset变数列表内的所有变数?有时不希望保留旧的变数或旧的值,而能和最新的程式同步. 不然还可能输出错误结果!!(尤其是有需要判断变数是否存在时)

此功能已加入 v1.204 , 在程式开始执行后会先清除先前的变数.



C. 之前你回覆的Script,我试了一下,竟然有'ScriptError'!!
AccProgSet('a=' + inttostr(i)); // 同命理程式 [设定:], 可将 Script 的 i 变数设定到命理程式的 a 变数内.

C++ 的字串应该是用 " 双引号, 正确如下:

AccProgSet("a=" + inttostr(i));



D. 设定: 本卦#{卦爻$(i)}#的入墓 = 本卦#{卦爻$(i)}#的入墓 + ''卜卦月支','
这种动态设定的变数, 原来以为这样作就一劳永逸, 但没考虑到第一次执行时因为变数本来不存在,所以不能直接累加. 改成如下:
  如果:变数存在(本卦#{卦爻$(i)}#的入墓)
      否则:
        设定:本卦#{卦爻$(i)}#的入墓 = ''卜卦月支','
  设定: 本卦#{卦爻$(i)}#的入墓 = 本卦#{卦爻$(i)}#的入墓 + ''卜卦月支','
想把它改成Script的方式,不然每次遇到动态设定的变数都要有一堆字. 请问该怎么改?

可先将变数初设为 '' , 再开始累加即可:

回圈:i=0 到 5
设定: 本卦#{卦爻$(i)}#的入墓=''




另外,ACCProgIF()要怎么用?

AccProgIf() 就是命理程式的 "如果:" 指令, 使用如下:

if AccProgIf("a=1") then
AccProgSet("a=2");

if AccProgIf("生年支=子") then
AccProgSet("a=2");



E. 假设一变数 str='ab,bc,def,gh', 要分别取出'ab','bc','def','gh',即以','为分隔,该怎么做?

此功能已加入 v1.204 , 用法如下:

复制程式
设定:str='ab,bc,def,gh'
回圈:i=0 到 隔数(str)-1
       设定:s[i]=取隔(str,i)

支援字串内空格, 用法如下:

复制程式
设定:str='ab,bc,' d e f ',gh'
回圈:i=0 到 隔数(str)-1
       设定:s[i]=取隔(str,i)


献花 x0