Ver la Versión Completa : [Componente] TextBox Multilinea y saltos de línea
Begoguay
5 de febrero de 2017, 22:02
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.
Kuk
5 de febrero de 2017, 22:51
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 ;)
Begoguay
6 de febrero de 2017, 19:34
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
INSPECT TEXTO REPLACING LEADING X"0D0A" BY "-"
y me da error:
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 (-).:llora::llora::llora:
Kuk
6 de febrero de 2017, 20:55
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
INSPECT TEXTO REPLACING
ALL X"0D0A" BY "- "
Te va a funcionar.
Si no quieres 2 caracteres, ya debes hacer un bucle:
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 IDX-1 PIC 9(4) COMP-5.
01 WS-CAMPO PIC X(8192).
PROCEDURE DIVISION.
MOVE "Text" OF CmText1 TO WS-CAMPO
MOVE 1 TO IDX-1
PERFORM UNTIL (IDX-1 + 2) > LENGTH OF WS-CAMPO
IF WS-CAMPO(IDX-1:2) = X"0D0A"
MOVE SPACES TO WS-CAMPO(IDX-1:1)
MOVE WS-CAMPO(IDX-1 + 2:) TO WS-CAMPO(IDX-1 + 1:)
END-IF
ADD 1 TO IDX-1
END-PERFORM
MOVE WS-CAMPO TO ...
vBulletin v3.8.7, Derechos ©2000-2026, Jelsoft Enterprises Ltd.