2009-06-30 4 views
0

내가 같은 코드가 있습니다총 문자열이 너무 길면 부분 문자열을 제거하는 방법은 무엇입니까? (M4)

총 문자열, 나는 $ 3 왼쪽 떨어져 충분한 문자 (+3)을 벗겨 할 (60 개 문자 이상)이 너무 긴 경우입니다
define(`DOSPACE',`................................... 
......................... 
................`'ifelse(eval(len(`Space: $2: $3')>60),1,`...'substr($3,eval((60-len(`Space: $2: $3')-7)*-1),$3) 
................... 
...................') 

그것을 적합하게 만들고, 누락 된 문자를 보여주기 위해 "..."을 추가하십시오.

나는 손실에 처해있다. 나는 그것들을 quoting issue 나 "execution time"문제로 확신한다. ($ 2와 $ 3는 그들이 생각하는 것과 다르다.)

문제를 복잡하게한다 :이 매크로는 다른 잊어 버린 ...)

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

답변