Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Fujitsu COBOL PowerCOBOL (ActiveX, v4 - v11)
PowerCOBOL (ActiveX, v4 - v11) Versiones del IDE basadas en ActiveX
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Duda] ToolTipText multilinea Josber PowerCOBOL y WinAPI 21 15 de marzo de 2024 17:06
[Sintaxis] Texto inicial en un Textbox dmosca PowerCOBOL (ActiveX, v4 - v11) 4 25 de julio de 2017 17:45
[Sintaxis] Operar con Textbox multilínea dmosca PowerCOBOL y COM/OLE 1 8 de mayo de 2017 10:26
[Componente] Número de más de 4 decimales en Textbox Fito PowerCOBOL (ActiveX, v4 - v11) 6 22 de abril de 2016 17:28
[Sintaxis] Posición del cursor en un textbox... Fito PowerCOBOL (ActiveX, v4 - v11) 3 3 de febrero de 2016 16:52

Respuesta

  #1
Antiguo 5 de febrero de 2017, 22:02
Begoguay
Forero
Última Actividad 21.08.2025 16:34
Posts Posts: 69
Likes enviados Enviados: 93
Likes recibidos Recibidos: 10
GUI TextBox Multilinea y saltos de línea
0 Inactivo Inactivo

Hola amigos foreros.

Tengo el siguiente problema: En un TextBox Multiline, pido un texto grande. Luego ese texto lo quiero llevar a una variable de PIC X(200). Al introducir el texto, si pulso 'ENTER', me pasa a la siguiente línea del TextBox, (que es lo que yo quiero), pero cuando el contenido del control lo paso a la variable, me junta las dos lineas y no me deja ningún espacio entre lo escrito en una línea y la otra.
¿Habría forma de que en la variable X(200), al juntar las dos líneas, me las separe con un espacio, un guión, o algo?

Un saludo.
Begoguay is offline   Responder Con Cita
  #2
Antiguo 5 de febrero de 2017, 22:51
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Citación del post de Begoguay Ver Mensaje
me junta las dos lineas
Esto no es posible. El salto de línea en Windows es de 2 bytes y el valor es X"0D0A", ese valor no es visible. Si lo visualizas en un control "mono-línea", simplemente no lo muestra y es por eso que lo ves todo junto, pero el valor sigue ahí cuando haces el MOVE desde el TextBox hacía la variable WORKING.

Haz un INSPECT o un bucle sobre tu variable WORKING reemplazando el valor X"0D0A" por lo que quieras.

Ya nos dirás si se ha resuelto tu problema



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 6 de febrero de 2017, 19:34
Begoguay
Forero
Última Actividad 21.08.2025 16:34
Posts Posts: 69
Likes enviados Enviados: 93
Likes recibidos Recibidos: 10

Citación del post de Kuk Ver Mensaje
Esto no es posible. El salto de línea en Windows es de 2 bytes y el valor es X"0D0A", ese valor no es visible. Si lo visualizas en un control "mono-línea", simplemente no lo muestra y es por eso que lo ves todo junto, pero el valor sigue ahí cuando haces el MOVE desde el TextBox hacía la variable WORKING.

Haz un INSPECT o un bucle sobre tu variable WORKING reemplazando el valor X"0D0A" por lo que quieras.

Ya nos dirás si se ha resuelto tu problema
Hola Kuk.
Yo quisiera sustituir el valor X"0D0A" por un guión.
Pongo esta instrucción
Código COBOL:
  1.         INSPECT TEXTO REPLACING LEADING X"0D0A" BY "-"
y me da error:
Código:
For a REPLACING phrase in an INSPECT statement, the lengths of the replacing character and replaced character must be equal
He intentado buscar el ASCII del guión ¿(X"2D")? y me pone el mismo error.

No se me ocurren mas soluciones para sustituir el salto de línea por un guión (-).
Begoguay is offline   Responder Con Cita
  #4
Antiguo 6 de febrero de 2017, 20:55
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Begoguay, el INSPECT no permite sustituciones de cadenas de caracteres de diferentes tamaños. Es decir, la longitud del texto a reemplazar debe coincidir con la longitud del texto nuevo. En este caso si haces

Código COBOL:
  1.      INSPECT TEXTO REPLACING
  2.          ALL X"0D0A" BY "- "

Te va a funcionar.

Si no quieres 2 caracteres, ya debes hacer un bucle:

Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  01  IDX-1       PIC 9(4) COMP-5.
  5.  01  WS-CAMPO    PIC X(8192).
  6.  PROCEDURE       DIVISION.
  7.      
  8.      MOVE "Text" OF CmText1 TO WS-CAMPO
  9.      
  10.      MOVE 1 TO IDX-1
  11.      
  12.      PERFORM UNTIL (IDX-1 + 2) > LENGTH OF WS-CAMPO
  13.          IF  WS-CAMPO(IDX-1:2) = X"0D0A"
  14.              MOVE SPACES               TO WS-CAMPO(IDX-1:1)            
  15.              MOVE WS-CAMPO(IDX-1 + 2:) TO WS-CAMPO(IDX-1 + 1:)
  16.          END-IF
  17.          
  18.          ADD 1 TO IDX-1
  19.      END-PERFORM
  20.      
  21.      MOVE WS-CAMPO TO ...



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
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:00.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.