Hola Roger, yo uso esto para cambiar de punto y coma --> coma a punto
Código COBOL:
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 caracter pic x(255).
01 buffer pic s9(9) comp-5.
01 retcode pic s9(9) comp-5.
01 errval pic 9.
PROCEDURE DIVISION.
MOVE "." TO JRH-SGLI-MIL
MOVE "," TO JRH-SGLI-DEC
MOVE 0 TO retcode errval
*> Setear separador de decimales (numeros)
move spaces to caracter
move JRH-SGLI-DEC to caracter(1:1)
move X"00" to caracter(2:1)
CALL "SetLocaleInfoA" with stdcall linkage
using by value 1024
by value 14
by reference caracter
RETURNING RETCODE
end-call
if retcode > 0
add 1 to errval
end-if
*> Setear separador de miles (numeros)
move spaces to caracter
move JRH-SGLI-MIL to caracter(1:1)
move X"00" to caracter(2:1)
CALL "SetLocaleInfoA" with stdcall linkage
using by value 1024
by value 15
by reference caracter
RETURNING RETCODE
end-call
if retcode > 0
add 1 to errval
end-if
INVOKE pow-self "Deactivate"
y el codigo siguiente lo da vuelta
Código COBOL:
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 caracter pic x(255).
01 buffer pic s9(9) comp-5.
01 retcode pic s9(9) comp-5.
01 errval pic 9.
PROCEDURE DIVISION.
MOVE "," TO JRH-SGLI-MIL
MOVE "." TO JRH-SGLI-DEC
MOVE 0 TO retcode errval
*> Setear separador de decimales (numeros)
move spaces to caracter
move JRH-SGLI-DEC to caracter(1:1)
move X"00" to caracter(2:1)
CALL "SetLocaleInfoA" with stdcall linkage
using by value 1024
by value 14
by reference caracter
RETURNING RETCODE
end-call
if retcode > 0
add 1 to errval
end-if
*> Setear separador de miles (numeros)
move spaces to caracter
move JRH-SGLI-MIL to caracter(1:1)
move X"00" to caracter(2:1)
CALL "SetLocaleInfoA" with stdcall linkage
using by value 1024
by value 15
by reference caracter
RETURNING RETCODE
end-call
if retcode > 0
add 1 to errval
end-if
INVOKE pow-self "Deactivate"
Tenes qie incluir "KERNEL32.LIB"
Espero te sirva,
Saludos