看板: BudaTech ◎ 佛典電子化討論    板主: HeavenChow
閱讀文章: 第 963/2032 篇 | 上篇 | 下篇 | 回覆 | 轉寄 | 轉貼 | m H d | 返回
發信人: "Heaven" <heaven@novell.zcom.com.tw>, 信區: BudaTech
標  題: 漢書巨集 fgfc.pro 的問題
發信站: 國立中山大學網路組 Mailing List (Sun Aug 31 12:18:29 1997)
轉信站: Lion!ccnews.nsysu!news.nsysu!buda-tech@sccid.nsysu
來  源: sccid.nsysu.edu.tw

之前小弟寫了個漢書巨集 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
閱讀文章: 第 963/2032 篇 | 上篇 | 下篇 | 回覆 | 轉寄 | 轉貼 | m H d | 返回

卍 台大獅子吼佛學專站  http://buddhaspace.org