看板: 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