Compilador

Solo disponible en BuenasTareas
  • Páginas : 8 (1901 palabras )
  • Descarga(s) : 0
  • Publicado : 16 de marzo de 2011
Leer documento completo
Vista previa del texto
Una cadena de caracteres, es una secuencia de caracteres ASCII, encerrados entre comillas simples o dobles.
Sentencia INSPECT
Permite contar, reemplazar o contar y reemplazar ocurrencias de caracteres simples o grupos de caracteres en un campo de datos.
Formato 1:
INSPECT identificador-1 TALLYING estructura-1 ...
Formato 2:
INSPECT identificador-1 REPLACING estructura-1 ...
Formato 3:INSPECT identificador-1 TALLYING estructura-1 ... REPLACING estructura-2 ...
Formato 4:
INSPECT identificador-1 CONVERTING identificador-2 ... TO {identificador-3 | literal-1} {BEFORE | AFTER } INITIAL { identificador-4 | literal-2 } ...
Estructura 1:
identificador-1 FOR {CHARACTERES estructura-1 {ALL | LEADING} {{identificador-2 | literal-1} estructura-1}...}...
Estructura 2:{CHARACTERES BY {identificador-1 | literal-1} estructura-1 | {ALL | LEADING | FIRST} {{identificador-1 | literal-1} BY {identificador-2 | literal-2} estrucutra-1} ... }
Estructura 3:
[ {BEFORE | AFTER} INITIAL {identificador-1 | literal-1} ] ...
TALLYING indica que hay que contar el números de veces que aparece la cadena de caracteres designada por identificador que acompañe a la instrucción.CHARACTERS indica que hay que contar todos los caracteres del campo indicado.
Ejemplo:
CAMPO-A PIC 9(10) VALUE 102340567
INSPECT CAMPO-A TALLYING CONTA FOR CHARACTERS
Después de ejecutarse esta sentencia, el campo CONTA valdrá 10, ya que en CAMPO-A hay 10 dígitos contando los 0 de relleno por la izquierda.
ALL indica que hay que contar todas las ocurrencias.
Ejemplo:
CAMPO-A PIC X(20)VALUE "111/1110ABBC"
INSPECT CAMPO-A TALLYING CONTA FOR ALL "11"
Después de ejecutarse esta sentencia, el campo CONTA valdrá 2, ya que en CAMPO-A la ocurrencia "11" aparece dos veces. Después de la primera igualdad queda "1/111ABC" que da una segunda igualdad, quedando "1ABC", donde no hay más repeticiones.
Cuando se da una igualdad, estos caracteres no se pueden volver a utilizar paraverificar si se cumple una segunda igualdad.
LEADING indica que sólo se desean contar las primeras ocurrencias contiguas.
Ejemplo:
CAMPO-A PIC X(20) VALUE "111/1110ABC"
INSPECT CAMPO-A TALLYING CONTA FOR LEADING "11"
Después de ejecutarse esta sentencia, el campo CONTA valdrá 1, yaque al principio de CAMPO-A, consecutivamente, sólo se da una ocurrencia.
BEFORE INITIAL indica que el recuento sedebe interrumpir después de la primera ocurrencia designada por el identificador que le acompaña.
Ejemplo:
CAMPO-A PIC X(20) VALUE "111/1110ABC"
INSPECT CAMPO-A TALLYING CONTA FOR ALL "11" BEFORE INITIAL "/"
Después de ejecutarse esta sentencia, el campo CONTA valdrá 1, ya que hasta el carácter "/" sólo hay una ocurrencia "11",
AFTER INITIAL indica que el recuento debe comenzar después dela primera ocurrencia designada por el identificador que le acompaña.
REPLACING indica que en el campo denominado por el identificador que le acompaña hay que reemplazar algunos o todos los caracteres por otros especificados en la sentencia INSPECT. Las opciones que se pueden especificar con REPLACING son las mismas que se han especificado para TALLYING y tienen el mismo significado, si pensamosque hay que reemplazar en lugar de contar. Aparece una opción más que es FIRST.
Ejemplo:
CAMPO-A PIC X(20) VALUE "111/1110ABC"
INSPECT CAMPO-A REPLACING ALL "11" BY "**" AFTER INITIAL "/"
Después de ejecutarse esta sentencia el campo CONTA valdrá "111/**10ABC".
FIRST indica que sólo se reemplaza la primera ocurrencia del campo denominado por identificador-1.
Ejemplo:
CAMPO-A PIC X(20)VALUE "111/1110ABC"
INSPECT CAMPO-A REPLACING FIRST "B" BY "A"
Después de ejecutar esta sentencia el campo CONTA valdrá "111/1110AABC".
Ejemplo:
CAMPO-A PIC X(20) VALUE "111/1111ABBC"
INSPECT CAMPO-A TALLYING CONTA FOR LEADING "11"
REPLACING FIRST "11" BY "**" AFTER INITIAL "/"
Después de ejecutarse esta sentencia, el campo CONTA valdrá 1 y CAMPO-A valdrá "111/**11ABBC".
Ejemplo:...
tracking img