之前小弟寫了個漢書巨集 fgfc.pro , 由於 maha 兄的漢書無法順利執行
花了一些時間, 找到了問題所在
小弟的漢書版本是 v5.01 加強版, maha 兄的是 v5.02
而問題的發生在於 5.01 版在巨集中傳遞參數時, 自動判斷參數是數字或字串.
而5.02版卻改為一律以字串來處理, 除非特別指定其為數字. 但這個指定法在 5.01
無法使用. 不巧的是小弟有用到用數字當參數的情況, 故在 5.02 版將其視為
字串, 故產生了一些問題, 這個問題的解釋後來有在長達三千多行的 he5.hlp
中找到, 這類問題比一般程式還難捉... 因為無法單步追蹤 :(
5.01 版在參數的說明如下:
====
%0 .. %9 表示各參數
%* 表示全部參數 (%1..%9)
◎ 可以用 %ArguNo 判斷引數的數目。
====
而 5.02 版多了這一行 (功能)
====
◎ %0、%1...%* 全部都視為字串。%0d、%1d...%*d 為相對引數的數值型態。
====
是否有其它不同? 有, 可是我懶得去看了 :) 新版的確多了一些功能, 若是我用新版,
表示舊版的使用者無法用了, 但我又不能用最舊的漢書... 版本問題是老問題囉! :p
這裡提出修改的方法, 表示我不一一傳新的 fgfc.pro 給各位了.
將底下八行 (前面列出的是行號, 希望我手上的和各位的一樣)
改為更下面的八行即可, 方法很簡單, 就是將 0,1,2,3 改為字串
如 w0,w1,w2,w3 就可以了.
============
586: [Get_Word 1] ;; 處理第一、二個檔案, 選用第一個字串
592: [Get_Word 2] ;; 處理第一、二個檔案, 選用第二個字串
598: [Get_Word 3] ;; 處理第一、二個檔案, 二者皆對
604: [Get_Word 0] ;; 處理第一、二個檔案, 二者全錯
618: [if %temp==0] ;; 將二檔 {{ }} 內的字去掉, 改成自己輸入的字串
622: [elseif %temp==1]
625: [elseif %temp==2]
628: [elseif %temp==3]
=============
[Get_Word w1] ;; 處理第一、二個檔案, 選用第一個字串
[Get_Word w2] ;; 處理第一、二個檔案, 選用第二個字串
[Get_Word w3] ;; 處理第一、二個檔案, 二者皆對
[Get_Word w0] ;; 處理第一、二個檔案, 二者全錯
[if %temp=="w0"] ;; 將二檔 {{ }} 內的字去掉, 改成自己輸入的字串
[elseif %temp=="w1"]
[elseif %temp=="w2"]
[elseif %temp=="w3"]
==============
有問題歡迎提出!
Heaven