From Bohemia Interactive Community
Notes
- Posted on 1 September 2016
- Dr_Eyeball
- To convert a structured text back to a string type, just use:
_str = [[str]] [[parseText]] _structuredText;
Bottom Section
- Posted on September 1, 2017 - 13:23 (UTC)
- AgentRev
-
If you are parsing user-defined strings like player names, you may want to convert special characters to their XML entities as a precaution beforehand:
private _encodeText =
{
private _specialChars = [38, 60, 62, 34, 39]; // & < > " '
private _convertTo = [[38,97,109,112,59], [38,108,116,59], [38,103,116,59], [38,113,117,111,116,59], [38,97,112,111,115,59]]; // & < > " '
private _chars = [];
private "_i";
{
_i = _specialChars find _x;
if (_i isEqualTo -1) then { _chars pushBack _x } else { _chars append (_convertTo select _i) };
} forEach toArray param [0,"",[""]];
toString _chars
};
private _encodedName = _name call _encodeText;
private _redName = parseText format ["<t color='#ff0000'>%1</t>", _encodedName];
- Posted on March 20, 2020 - 19:48 (UTC)
- Dscha
-
When using parseText on an RscStructuredText control, with custom Attributes set (extra config Class), it needs to be in the same line as ctrlSetStructuredText:
_text = "abc";
_ctrl ctrlSetStructuredText parseText _text;
The following Code would use none of the custom Attributes of the selected Control, instead it falls back to Standard Values (Font, Size, Color, Align, etc)
_text = parseText "abc";
_ctrl ctrlSetStructuredText _text;