La Web del Programador: Comunidad de Programadores
 
    Pregunta:  9130 - RMCOBOL
Autor:  andrea cosentino
necesito informacion sobre como hacer que en rmcobol al ingresar un campo numerico con decimal, y al transferirlo a un archivo reconozca la coma como , y no llene los espacios a la izquierda con 0.
ej. si cargo 120,00 en un campo pic 9(6)v99. lo cargue como 120,00 y no como 00001200.
muchas gracias.
espero una pronta respuesta

  Respuesta:  VICTOR F.
Andrea;
Ojalas que no se a muy tarde la respuesta a tu consulta;
1.- Por defecto el rmcobol esta orientado con el punto (.) para separar las cantidades. Para cambiar esto solo tienes que agregar una instruccion ; DECIMAL-POINT IS COMMA.
2:- Si no colocas esta intruccion ocurre lo que mencionas.
Para mostrarla correctamente, ademas, debe agregarle al DISPLAY de la cantidad la instruccion CONVERT.
por Ej.; DISPLAY campo LINE xx POSITION zz CONVERT.

Si tiene alguna consulta, ya tienes mi correo.

  Respuesta:  Héctor Ramírez Capetillo
Perú 23/03/2001

Estimada Andrea,
No sé la fecha de publicación de tu anuncio y si me mensaje llegue a tiempo, parece que les falta añadir éste detalle en los avisos, pero respecto a tu pregunta no existe intruccion que permita lo que pretendes, pero te sugiero la siguiente rutina que hará posible lo que necesitas.
Working-Storage....

77 CAMPO-NUMERO PIC 9(5)V99.

01 CAMPO-ALFA.
03 ENTERO PIC XXXXX.
03 DECIMAL PIC XX.

01 CAMPO-EDITADO.
03 E-ENTERO PIC XXXXX.
03 FILLER PIC X VALUE " ".
03 E-DECIMAL PIC XX.
...

PROCEDURE DIVISION.
ACCEPT CAMPO-NUMERO.
MOVE CAMPO-NUMERO TO CAMPO-ALFA. (DESAPARECE EL DECIMAL).
MOVE ENTERO TO E-ENTERO.
MOVE DECIMAL TO E-DECIMAL.
INSPECT E-ENTERO REPLACING ALL " " WITH "0".
INSPECT E-DECIMAL REPLACING ALL " " WITH "0".

Luego puedes hacer uso de la variable CAMPO-EDITADO y moverlo donde desees.

Nota: el comando INSPECT, puede quizá tenga otro nombre como VERIFY depende de la versión de Cobol que utilizas.
Espero haberte ayudado..
Saludos.