Cobol - numerico a alfanumerico

 
Vista:

numerico a alfanumerico

Publicado por Gillosoft (2 intervenciones) el 06/04/2006 16:39:52
Hola a todos:

Si me pueden ayudar estaria muy agradecido.
Como puedo convertir una variable alfanumerica a numerica en cobol
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:numerico a alfanumerico

Publicado por SuperIndio (161 intervenciones) el 07/04/2006 16:46:29
Si Sabes que la variable Alfanumerica viene completa con
numeros en todos sus digitos te conviene hacer una redefinicion
y tomar la redefinicion (R-Numerica) en es ecaso es asi:

01 AlfaNum Pic X(08) Value All "0".
01 R-Numerica Redefines AlfaNum Pic 9(08).

En cambio si la variable alfanumerica viene con solo
algunos digitos nada mas te conviene aplicar este algoritmo
y tomar la redefinicion (R-Destino),
es alinear a la Derecha y rellenar con ceros los
espacios de adelante o Izquierda

01 Id-Works.
03 V-Origen Pic X(15) Value Spaces.
03 V-Destino Pic X(15) Value Spaces.
03 R-Destino Redefines V-Destino Pic 9(15).
03 I Pic 9(02) Value 0.
03 K Pic 9(02) Value 0.

Move "28" To V-Origen.
Move 16 To I.
Move Spaces To V-Destino.

Perform Varying K From 15 By -1 Until K = 0

If V-Origen(K:1) Not = " " Then

Compute I = I - 1
Move V-Origen(K:1) To V-Destino(I:1)

End-If

End-Perform.

Inspect V-Destino Replacing All " " By "0".
Move V-Destino To V-Origen.

Display V-Destino " - " V-Origen " - " R-Destino.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:numerico a alfanumerico

Publicado por Alberto (72 intervenciones) el 07/04/2006 23:03:53
Superlindo:

Muy ilustrativo, pero también muy complicado y rebuscado, es más facíl hacer un MOVE es decir:

77 ALFA PIC X(9).
77 NUMERO PIC 9(9).

MOVE ALFA TO NUMERO.

Y ya tienes los datos de alfa (siempre que sean número) en formato númerico y viceversa MOVE NUMERO TO ALFA y ya los tienes en alfabético.

Un saludo desde Gijón- España.

Alberto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:numerico a alfanumerico

Publicado por SuperIndio (161 intervenciones) el 10/04/2006 20:13:41
Si lees bien es lo que primero le he planteado si ya se que
la variable alfanumerica contiene solo numeros y solo numeros
ni hace falta tu bendito MOVE, directamente haces un con un REDEFINES
y listo....

pero...

Que tal si ALFA tiene esto "__34_____" en donde _ es un espacio
el move seria erroneo, se genera un error de tipo Ilegal character
, en cambio con mi rutina finaliza asi "000000034"

Ismael
Saludos
Salta - Argentina
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:numerico a alfanumerico

Publicado por Alberto (72 intervenciones) el 10/04/2006 22:44:14
Mira Ismael, no entremos en discusiones, si no en dar soluciones faciles y comprensibles. Tu ejemplo "__34_____" no me sirve ya que esa variable ALFA no contiene sólo números, contiene también espacios y NO daria error, ya que los espacios los sustituiría por CEROS (0) y pondría 0340000.

Un saludo desde España.

Alberto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:numerico a alfanumerico

Publicado por Roxaba (2 intervenciones) el 06/09/2022 23:49:54
Pero si alfa viene con espacios dará error
Por ejemplo "1 "
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:numerico a alfanumerico

Publicado por Roxana (2 intervenciones) el 07/09/2022 00:50:08
Se puede usar la functión numval
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:numerico a alfanumerico

Publicado por oscar (37 intervenciones) el 27/05/2006 23:10:57
Por no prueban con esto:

01 CAMPO.
03 NRO PIC Z(8).
01 NUMERO PIC 9(8).

y luego MOVE NRO TO NUMERO.

sI usan RMCobol 85 les solucionará el problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar