PDA

Ver la Versión Completa : [Sintaxis] Duda sobre STRING e INSPECT


Anthony
9 de abril de 2015, 15:05
Nesecito la Ayuda de los Mas Experimentados..! Alguien me Podria Explicar para que Sirven estos Comandos..?
inspect
tallying
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


*************************************
WORKING-STORAGE SECTION.
01 CAMPO-1 PIC X(10) VALUE 'VALOR-1'.
01 CAMPO-2 PIC X(10) VALUE 'VALOR-2'.
01 CAMPO-3 PIC X(20).
PROCEDURE DIVISION.
STRING CAMPO-1 CAMPO-2 DELIMITED BY SIZE
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:


INSPECT CAMPO1 REPLACING ALL "B" BY SPACES

El resultado sería "A BCDEF0123"

Contar ocurrencias:

INSPECT CAMPO2 TALLIYNG CONTA FOR ALL "P"

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

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 ...

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

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.-