程式問題(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