Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Fujitsu COBOL PowerCOBOL v3 (V3L10, Win32)
PowerCOBOL v3 (V3L10, Win32) IDE Freeware compatible con Windows 7/8/10/11
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Sintaxis] Ayuda con lectura de archivo indexado JonathanDemons_123 COBOL - General 4 15 de abril de 2024 08:46
[Duda] COPIAR UN FICHERO SECUENCIAL EN OTRO moraber RM/COBOL 1 6 de julio de 2021 11:10
[Sintaxis] Lectura del ultimo registro jmeza PowerCOBOL (ActiveX, v4 - v11) 4 5 de febrero de 2018 03:13
[Sintaxis] Error de lectura en archivo jmeza PowerCOBOL (ActiveX, v4 - v11) 2 12 de diciembre de 2017 12:13
[Sintaxis] Grabación/Lectura archivo de configuración Dasije WinDev 0 8 de septiembre de 2016 01:04

Respuesta

  #1
Antiguo 23 de agosto de 2018, 15:56
Gatomalo
Forero
Última Actividad 01.07.2020 18:41
Posts Posts: 58
Likes enviados Enviados: 6
Likes recibidos Recibidos: 2
Tableta Lectura archivo secuencial
0 Inactivo Inactivo

Hola Amigos estoy migrando un archivo excel a un archivo plano de ahi a powercobol tengo dificultad al leer un archivo secuencial con mas de 50 caracteres la linea de lectura es la siguiente:
Código:
000002&09/06/15&TBI&"AYER VOMITO 4 VECES HOY DECAIDOHA TENIDO ERLICHIA"&ENRO+DEXA HEPAT&&&&&5.6&38.6&&
El "&" es el separador de campo.

Pero al leer lo toma de esta manera
Código:
000002&09/06/15&TBI&"AYER VOMITO 4 VECES HOY DECAIDO
HA TENIDO ERLICHIA"&ENRO+DEXA HEPAT&&&&&5.6&38.6&&
Código COBOL:
  1.   Perform varying I  from I by 1 until D(I) = "&" OR I > 700                                                      
  2.     CONTINUE  
  3.        move D(I) to NOM(II)
  4.        ADD 1 TO II
  5.        end-perform.

lectura en cobol.

"ojo al crear un tema no aparece el marcador de cobol en el foro."
Gatomalo is offline   Responder Con Cita
  #2
Antiguo 23 de agosto de 2018, 21:40
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Gatomalo, posiblemente haya un salto de línea de por medio.

Cómo tienes definida la FD ?

Citación del post de Gatomalo Ver Mensaje
"ojo al crear un tema no aparece el marcador de cobol en el foro."
Gracias, ya está corregido



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #3
Antiguo 23 de agosto de 2018, 21:50
drvedia1981
Forero
Última Actividad 17.05.2022 22:45
Posts Posts: 66
Likes enviados Enviados: 3
Likes recibidos Recibidos: 9

Hola y algo asi ...

Código COBOL:
  1.    UNSTRING campo_total_ a_leer DELIMITED BY "&"
  2.           INTO campo1 campo2 campo3 etc.
Saludos
drvedia1981 is offline   Responder Con Cita
  #4
Antiguo 24 de agosto de 2018, 06:12
Gatomalo
Forero
Última Actividad 01.07.2020 18:41
Posts Posts: 58
Likes enviados Enviados: 6
Likes recibidos Recibidos: 2

Código COBOL:
  1.  FD REPORTE  LABEL RECORD IS STANDARD.
  2.  01 REC-REPOR PIC X(2000).
Gatomalo is offline   Responder Con Cita
  #5
Antiguo 24 de agosto de 2018, 09:29
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

drvedia1981, para ello hay que conocer el número de separaciones. Si son simepre de la misma cantidad entonces valdría.

Gatomalo, pues yo creo que lo más seguro es que haya un X"0A" o X"0D" o X"0D0A" ahí donde te corta la línea.



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #6
Antiguo 24 de agosto de 2018, 15:55
Gatomalo
Forero
Última Actividad 01.07.2020 18:41
Posts Posts: 58
Likes enviados Enviados: 6
Likes recibidos Recibidos: 2

Tambien pienso igual pero como puedo encontrar ese comando para borrar de la linea ??
Gatomalo is offline   Responder Con Cita
  #7
Antiguo 24 de agosto de 2018, 23:04
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Gatomalo, se me ocurre lo siguiente:

En caso de que el número de campos (separados por &) sea siempre el mismo (aunque no contenga nada, la cantidad de dicho carácter siempre es la misma en cada registro), lo que puedes hacer es contarlos para cada registro "lógico".

Por ejemplo, si sabes que siempre debe haber 10 & por registro, los vas contando. Si ves que has llegado al final de los datos del registro leído, pero el contador de &-s es inferior a 10, lees el registro siguiente con READ pero sigues tratándolo como si fuera el anterior, es decir continuas el contado y la extracción de datos para el registro de destino actual.
Lo que quiero decir, es que hagas un o varios READ del fichero de entrada hasta que obtengas el registro de salida "lógico".

En caso de que la cantidad de &-s es variable, ahora mismo lo veo un poco chungo de hacer...



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #8
Antiguo 25 de agosto de 2018, 05:22
Gatomalo
Forero
Última Actividad 01.07.2020 18:41
Posts Posts: 58
Likes enviados Enviados: 6
Likes recibidos Recibidos: 2

Si reviso la cadena y reemplazo el X"0A" o X"0D" o X"0D0A" por blanco
¿Como seria la sintaxis?
Gatomalo is offline   Responder Con Cita
  #9
Antiguo 25 de agosto de 2018, 19:14
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Gatomalo, no se puede. Es decir, se puede hacer la acción en sí, pero no en este caso. Porque dicho carácter significa "salto de línea" que equivale a "fin registro" para el COBOL.

Salvo que vayas leyendo por bytes, uno por uno, y reemplaces todos los saltos de linea creando así un único registro conteniendo todo el churro...



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #10
Antiguo 26 de agosto de 2018, 19:45
Gatomalo
Forero
Última Actividad 01.07.2020 18:41
Posts Posts: 58
Likes enviados Enviados: 6
Likes recibidos Recibidos: 2

Logre solucionar como este archivo venia del excel hice un reemplazo alt-010 por espacio del tabulador y quito todos los saltos de linea.
Gatomalo is offline   Responder Con Cita
Respuesta


Herramientas

Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 16:43.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.