Publicado el :
Macro CREATION_INTERNE

Macro AHGscanReplace - Reemplazo de segmento de cadena

Este código también está disponible en: Deutsch English Français
La macro recorre una cadena de entrada segmentada por un delimitador (espacio por defecto). Reconstruye la cadena reemplazando el elemento situado en el índice 'n' por el valor proporcionado en el parámetro 'to'. El código depende de una macro externa llamada '%AHGcount' (presumiblemente para contar el número de palabras) que no está incluida en este fragmento.
Análisis de datos

Type : CREATION_INTERNE


El procesamiento es puramente lógico sobre cadenas de caracteres pasadas como parámetros de la macro. No se lee ninguna tabla de datos externa.

1 Bloque de código
MACRO
Explicación :
Definición de la macro. Inicializa un bucle basado en el número de palabras (calculado por %AHGcount), construye una nueva cadena 'outstr' reemplazando la palabra en el índice 'n', y devuelve el resultado final sin el delimitador inicial.
¡Copiado!
1%macro AHGscanReplace(str,n,to,dlm=%str( ));
2 %local i outstr;
3 %DO i=1 %to %AHGcount(&str,dlm=&dlm);
4 %IF &i ne &n %THEN %let outstr=&outstr&dlm%scan(&str,&i,&dlm);
5 %ELSE %let outstr=&outstr&dlm&to;
6 %END;
7 %substr(&outstr,2)
8%mend;
9/*%put %ahgscanReplace(ok @ ok @ ok, 2,no,dlm= @);*/
10/*%put %ahgscanReplace(ok ok ok, 1,no );*/
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.