0

次のようなコードがあります。

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')
)
4

1 に答える 1

0

patsubstはどうですか?

于 2009-10-14T17:26:57.330 に答える