Iniciar Sesión

Ver la Versión Completa : [Duda] Reducir tamaño campo


Gatomalo
20 de noviembre de 2017, 21:19
Bueno siguiendo la politica del foro

01 DATOS-DET.
02 MED-ITEM PIC X(3).
02 FILLER PIC X VALUE ",".
02 CANT PIC ZZZ,ZZ9.99.
02 FILLER PIC X VALUE ",".
02 COD-PROD PIC ZZZ,ZZ9.99.
02 FILLER PIC X VALUE ",".

este codigo se registra como "NUI, 10.15, 105.30".
para que se ponga de esta manera "NUI,10.15,105.30".

compilador rmcobolv7

Fito
21 de noviembre de 2017, 14:52
Hola:

A lo mejor hay una mejor manera, pero ahora se me ocurre hacer un bucle con un inspect reemplazando ", " por "," hasta que no haya más nada que reemplazar...

Saludos.

Fito...

Joseg
21 de noviembre de 2017, 15:34
Bueno siguiendo la politica del foro

01 DATOS-DET.
02 MED-ITEM PIC X(3).
02 FILLER PIC X VALUE ",".
02 CANT PIC ZZZ,ZZ9.99.
02 FILLER PIC X VALUE ",".
02 COD-PROD PIC ZZZ,ZZ9.99.
02 FILLER PIC X VALUE ",".

este codigo se registra como "NUI, 10.15, 105.30".
para que se ponga de esta manera "NUI,10.15,105.30".

compilador rmcobolv7



Tirar os espaços de uma string:


working-storage section.
01 source-field pic x(100).
01 source-index pic 9(004).
01 source-size pic 9(004) value 999.

01 target-field pic x(100).
01 target-index pic 9(004).

procedure division.
move 100 to source-index *> (depende do tamanos máximo da string)
move "NUI, 10.15, 105.30" to source-field
perform remove-spaces



target-field fica = a "NUI,10.15,105.30"

remove-space.
move spaces to target-field.
move zeroes to target-index
perform varying source-index from 1 by 1
until source-index > source-size
if source-field(source-index:1) > space
add 1 to target-index
move source-field(source-index:1) to
target-field(target-index:1)
end-if
end-perform.

Eslopes
24 de noviembre de 2017, 03:30
01 DATOS-DET.
02 MED-ITEM PIC X(3).
02 FILLER PIC X VALUE ",".
02 CANT PIC ZZZ,ZZ9.99.
02 FILLER PIC X VALUE ",".
02 COD-PROD PIC ZZZ,ZZ9.99.
02 FILLER PIC X VALUE ",".
01 resultado pic x(50).


procedure division.

string MED-ITEM ", " CANT ", " COD-PROD ", " delimited all by spaces into resultado

display resultado


algo assim...estou ficando velho, posso ter esquecido a sintaxe correta

Saludos, Emerson

Gatomalo
24 de noviembre de 2017, 04:30
eso faltaba gracias :dart: