Richeditbox

Post Reply
_Rafa_
Posts: 30
Joined: 19 Sep 2011, 23:02

Richeditbox

Post by _Rafa_ »

Hola a todos,

Una pregunta, ¿es posible acceder únicamente al contenido de un richeditbox? Me refiero sacar el texto sin todos los formatos y demás que se añaden en los ficheros RTF.

Un saludo.
Rafa.
luis.vila
Posts: 194
Joined: 17 Sep 2011, 12:46

Re: Richeditbox

Post by luis.vila »

Nunca estamos satisfechos.

El RTF es un formato muy sencillo:
"La negrita se puede quitar"

Viene a ser
{\rtf1\ansi\ansicpg1252\deff0\deflang3082{\fonttbl{\f0\fnil\fcharset0 Segoe UI;}{\f1\fnil Segoe UI;}}
\viewkind4\uc1\pard\f0\fs16 La \b negrita\b0 se puede eliminar\f1\par
}

A las bravas
El proceso de convertirlo a texto plano es eliminar las llaves del principio y final y las palabras de formato: \+texto+espacio
1 {\rtf1\ansi\ansicpg1252\deff0\deflang3082{\fonttbl{\f0\fnil\fcharset0 Segoe UI;}{\f1\fnil Segoe UI;}}
\viewkind4\uc1\pard\f0\fs16 La \b negrita\b0 se puede eliminar\f1\par
}
2 \rtf1\ansi\ansicpg1252\deff0\deflang3082{\fonttbl{\f0\fnil\fcharset0 Segoe UI;}{\f1\fnil Segoe UI;}}
\viewkind4\uc1\pard\f0\fs16 La \b negrita\b0 se puede eliminar\f1\par
Uniface usa un RTF que define todos los atributos al principio para luego reutilizarlos en el texto. Eliminamos más llaves
3 \rtf1\ansi\ansicpg1252\deff0\deflang3082\viewkind4\uc1\pard\f0\fs16 La \b negrita\b0 se puede eliminar\f1\par
Finalmente eliminamos todos los comandos de formato \+texto+espacio
Y nos queda:
La negrita se puede eliminar

Undocumented
Otra manera "undocumented" es usar parámetros del widget
Sea CRTF el campo RichEditbox y CTXT un campo Editbox

en las propiedades del widget RichEditbox, pulsamos botón More... y añadimos un parámetro de Widget llamado FORMAT con valor TEXT (se puede hacer por código con $fieldproperties("CRTF")="Format=Text")
Entonces, valiendo CRTF "Mi gato está triste y azul. Creo que está muerto."
CTXT = CRTF ;hará que CTXT contenga "Mi gato está triste y azul. Creo que está muerto."

También vale para variables.

$status=0 ; se acabaron los problemas
Post Reply