2009-06-30 15 views
0

私はこのようなコードを持っている:はどうすれば合計文字列が長すぎることを与えられた部分文字列を削除しますか? (M4)

define(`DOSPACE',`................................... 
......................... 
................`'ifelse(eval(len(`Space: $2: $3')>60),1,`...'substr($3,eval((60-len(`Space: $2: $3')-7)*-1),$3) 
................... 
...................') 

合計の文字列(60文字以上)が長すぎる場合は、ですが、私は$ 3の左から外れ十分な文字(+3)を取り除きたいですフィットさせるために、 "..."を追加して不足している文字を表示します。

私は迷っています。私はその引用問題か "実行時間"問題(それによって$ 2と$ 3は私が思うものではないと確信しています)

問題を複雑にする:このマクロは別の

define(`DOGROWTH',dnl 
DOSPACE(`$1',`$2',`/path/to/some/$3/where') 
DOSPACE(`$1',`$2',`/path/to/some/$3/else') 
) 

答えて

0

patsubstについて)...忘れD」?

関連する問題