Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   AcuCobol (https://www.cobolforo.es/forumdisplay.php?f=23)
-   -   [Sintaxis] Duda sobre STRING e INSPECT (https://www.cobolforo.es/showthread.php?t=90)

Anthony 9 de abril de 2015 15:05

Duda sobre STRING e INSPECT
 
Nesecito la Ayuda de los Mas Experimentados..! Alguien me Podria Explicar para que Sirven estos Comandos..?
Código COBOL:
  1. inspect
  2. tallying
  3. string ......... delimited by SIZE

Kuk 9 de abril de 2015 18:56

Anthony, STRING se usa para unir varios valores de varios campos en un solo campo. Por ejemplo

Código COBOL:
  1. *************************************
  2.         WORKING-STORAGE SECTION.
  3.         01  CAMPO-1    PIC X(10) VALUE 'VALOR-1'.
  4.         01  CAMPO-2    PIC X(10) VALUE 'VALOR-2'.
  5.         01  CAMPO-3    PIC X(20).
  6.         PROCEDURE DIVISION.
  7.             STRING CAMPO-1 CAMPO-2 DELIMITED BY SIZE
  8.                 INTO CAMPO-3.

Daria el valor "VALOR-1 VALOR-2 " en el CAMPO-3.

El INSPECT no se usa mucho, se usa para reemplazar o contar caracteres en un campo. TALLYING cuenta, REPLACING reemplaza.

Josber 9 de abril de 2015 20:18

Aunque ya te lo ha dicho Kuk, es muy sencillo

Supongamos que tenemos CAMPO1 que vale 'ABCDEF0123" , CAMPO2 que vale "LMNOPPPQ9876" y una variable numérica llamada CONTADOR...

INSPECT, sirve para "inspeccionar" una variable y una vez inspeccionada, puedes hacer varias cosas con ella:

Reemplazar carácteres:


Código COBOL:
  1. INSPECT CAMPO1 REPLACING ALL "B" BY SPACES
El resultado sería "A BCDEF0123"

Contar ocurrencias:
Código COBOL:
  1. INSPECT CAMPO2 TALLIYNG CONTA FOR ALL "P"

CONTA valdrá 3, que es el número de P que hay en CAMPO2

Código COBOL:
  1. INSPECT CAMPO1 TALLYING CONTA FOR CHARACTERS

CONTA valdrá 10, que es el número total de caracteres que hay en la variable CAMPO1, los espacios en blanco, también cuentan

Tiene más funciones, busca en internet que te salen seguro.

STRING sirve para concatenar (enlazar) campos, es una sentencia con muchas opciones

Supongamos que tenemos una variable más que se llama CAMPO3 que está vacía ...

Código COBOL:
  1. STRING CAMPO1 CAMPO2 DELIMITED BY SIZE INTO CAMPO3

El resultado de CAMPO3 será

"ABCDEF0123LMNOPPPQ9876"

DELIMITED BY SIZE, "significa" que coja el CAMPO1 entero y el CAMPO2 entero, (incluso si tiene 100 espacios al final de algún campo) los una y el resultado lo ponga en CAMPO3

Código COBOL:
  1. STRING CAMPO1 CAMPO2 DELIMITED BY "1" INTO CAMPO3

El resultado de CAMPO3 sería

"ABCDEF0LMNOPPPQ9876"

DELIMITED BY Variable/constante, es igual, pero "corta" cuando encuentra los valores dichos

Tiene más opciones, pero son un poco complicadas de explicar por aquí, te aconsejo que busque en internet, que hay mucha información al respecto.

Un saludo.-


La franja horaria es GMT +2. Ahora son las 14:01.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.