REPLACE Statement

La sentencia REPLACE se utiliza para sustituir el texto del programa fuente.

La sentencia REPLACE puede producirse en cualquier lugar del programa fuente donde pueda producirse una serie de caracteres. Debe ir precedido de un punto de separación, excepto cuando es la primera sentencia de un programa compilado por separado. Debe terminar con un punto de separación.

La sentencia REPLACE se parece a la frase REPLACE de la sentencia COPY, excepto que actúa en todo el programa fuente, no sólo en el texto de las bibliotecas COPY. Es un método fácil de realizar sustituciones de serie simples.

Sentencia REPLACE-Formato 1

Leer diagrama de sintaxisOmitir diagrama de sintaxis visualREPLACE==pseudo-text-1==BY==pseudo-text-2==LEADINGTRAILING==partial-word-1==BY==partial-word-2==.
Cada aparición coincidente de pseudo-text-1 se sustituye por su correspondiente pseudo-text-2 y cada aparición coincidente de un partial-word-1 INICIAL o TRAILING se sustituye por su correspondiente partial-word-2. Este proceso continúa hasta que se cumpla alguna de las siguientes condiciones:
  • La siguiente aparición de la sentencia REPLACE
  • Fin del programa
  • REPLACE OFF (véase el formato 2 más abajo)

Sentencia REPLACE-Formato 2

Leer diagrama de sintaxisOmitir diagrama de sintaxis visualREPLACEOFF.

El formato 2 finaliza la sustitución de texto actual especificada por el formato 1.

pseudo-text-1, pseudo-text-2
pseudo-texto es una secuencia de palabras de texto, líneas de comentario o espacios separadores enlazados por, pero sin incluir, el delimitador de pseudo-texto (==).

Pseudo-text-1 debe contener al menos una palabra de texto que no sea una coma de separador o un punto y coma de separador. Los espacios iniciales y finales no se incluyen en el proceso de comparación de texto, y varios espacios intercalados se consideran un único espacio.

Pseudo-text-2 no necesita contener una palabra de texto; puede constar únicamente de caracteres de espacio y/o líneas de comentario.

Puesto que pseudo-text-1 requiere una palabra de texto, que debe estar limitada por separadores, no se puede utilizar pseudotexto para sustituir parte de un nombre de datos (por ejemplo, un prefijo); se debe utilizar el nombre de datos completo.

Extensión de IBM

Pseudo-text-1 o pseudo-text-2 puede contener series de caracteres DBCS o nacionales. Este pseudo-texto no se puede continuar a través de líneas.

Fin de la extensión de IBM
Extensión de IBM

Cuando una sentencia REPLACE está en vigor, hay ciertas restricciones en el diseño de una sentencia COPY de conversión de formato 2-DDS. (Consulte COPY Statement-Format 2-DDS Translate.)

Fin de la extensión de IBM
partial-word-1, partial-word-2
Una sola palabra de texto que está limitada por, pero sin incluir, los delimitadores de pseudo-texto (==). Ambos caracteres de cada delimitador de pseudotexto deben aparecer en una línea. Sin embargo, la palabra de texto dentro de una palabra parcial se puede continuar.
Las reglas siguientes se aplican a partial-word-1 y partial-word-2:
  • partial-word-1 consta de una palabra de texto.
  • partial-word-2 consta de cero o una palabra de texto.
  • partial-word-1 y partial-word-2 no pueden ser un literal alfanumérico, literal nacional, literal DBCS o palabra DBCS.

Las sentencias REPLACE se procesan después de que se hayan procesado todas las sentencias COPY. COPY debe procesarse primero para ensamblar el texto de origen completo. A continuación, se puede utilizar REPLACE para modificar el texto de origen, realizando una sustitución de serie simple. Las sentencias REPLACE no pueden contener ellas mismas sentencias COPY, y el texto resultante del proceso de una sentencia REPLACE no debe incluir una sentencia REPLACE.

Información relacionada: