Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   PowerCOBOL (ActiveX, v4 - v11) (https://www.cobolforo.es/forumdisplay.php?f=9)
-   -   [Noticia] Traslado Caracteres de Excel a powercobol (https://www.cobolforo.es/showthread.php?t=345)

Gatomalo 4 de marzo de 2016 00:02

Traslado Caracteres de Excel a powercobol
 
Amigos del foro, estos pasando información de EXCEL a Powercobol mediante un archivo plano que lo leo en forma secuencial pero algunos caracteres que estan escritos en excel no pasan en forma correcta "ñ" sale otro caracter los que estan acentuados de igual forma asi tambien otras letras & ....
Como puedo hacer para mantener la informacion original y no cambie pense usar
Código COBOL:
  1. INSPECT NOMBRE CONVERTING "Ñ" TO "N".
pero son muchos caracteres.:llora:

Kuk 4 de marzo de 2016 09:06

Gatomalo, te sale un caracter raro o dos? El problema es de la codificación del fichero Excel, me parece... Por ejemplo, en el rpgorama es ASCII (ISO-8859-1) y el fichero Excel es UTF8.

Gatomalo 4 de marzo de 2016 16:12

Asi es en algunos casos se cambia una letra por otra "LULú" x "LULé" , en otras
un caracter por 2caracteres "&" x " ►".
que puedo hacer alguna forma para unificar

Kuk 4 de marzo de 2016 16:47

Gatomalo, en Fujitsu hay funciones como UTF8-OF y UCS2-OF (creo) pero ninguna que haga lo contrario. Con lo cual, lo que yo haría es un bucle recorriendo la cadena y sustituyendo los caracteres raros por los buenos. Eso si, no te fíes de lo que ves en un editor de texto, tienes que mirar el valor en hexadecimal y evaluar en hexadecimal también:
Código COBOL:
  1.  WORKING-STORAGE SECTION.
  2.  01  WS-TEXTO       PIC X(100).
  3.  01  IDX-1          PIC 9(9) COMP-5.
  4.  
  5.  PROCEDURE DIVISION.
  6.      
  7.      ...
  8.      MOVE 1 TO IDX-1
  9.      
  10.      PERFORM UNTIL IDX-1 > 98
  11.          EVALUATE WS-TEXTO(IDX-1:2)
  12.              
  13.              WHEN X"EFBB" *> á
  14.                  MOVE WS-TEXTO(IDX-1 + 2:) TO WS-TEXTO WS-TEXTO(IDX-1 + 1:)
  15.                  MOVE "á" TO WS-TEXTO(IDX-1:1)
  16.                  
  17.              WHEN X"BFC3" *> é
  18.                  MOVE WS-TEXTO(IDX-1 + 2:) TO WS-TEXTO WS-TEXTO(IDX-1 + 1:)
  19.                  MOVE "é" TO WS-TEXTO(IDX-1:1)
  20.                  
  21.              ...etc
  22.          
  23.          ADD 1 TO IDX-1
  24.      END-PERFORM

Gatomalo 4 de marzo de 2016 17:22

Me tenia hacer este bucle son tantos los caracteres y como son varias hojas de excel a exportar no se que con que caracter me topare, pero ni modo.
:carta:

Kuk 4 de marzo de 2016 18:49

Gatomalo, sólo son los caracteres especiales, normalmente, los que dan guerra. Los acentuados, la Ñ y poco más...


La franja horaria es GMT +2. Ahora son las 01:13.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.