2009-06-30 7 views
0

J'ai code comme ceci:Comment supprimer une sous-chaîne étant donné que la chaîne totale est trop longue? (M4)

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

C'est, si la chaîne totale est trop long (plus de 60 caractères), je veux dépouiller assez de caractères (+3) au large de la gauche de 3 $ pour l'adapter, et ajoutez un "..." pour montrer les caractères manquants.

Je suis à perte. Je suis convaincu que c'est soit un problème de devis ou un problème de "temps d'exécution" (2 $ et 3 $ ne sont pas ce que je pense qu'ils sont ...)

Pour compliquer les choses: cette macro est appelée dans une autre (I 'ai oublié ...)

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

Répondre

Questions connexes