Xlate$: Difference between revisions
Gordon.dye (talk | contribs) No edit summary |
Gordon.dye (talk | contribs) m (→UTF-8 Support) |
||
Line 13: | Line 13: | ||
In line 100, Y$ will be a translation of X$ using Table$. For example, spaces (ASCII value 32) will be replaced by Table$(33:33), the character in the 33rd position of Table$. | In line 100, Y$ will be a translation of X$ using Table$. For example, spaces (ASCII value 32) will be replaced by Table$(33:33), the character in the 33rd position of Table$. | ||
====UTF-8 Support==== | ====UTF-8 / UTF8 Support==== | ||
If the first 7 bytes of the table consists of STR2UTF or UTF2STR (case insensitive) then conversion to or from UTF-8 takes place. | If the first 7 bytes of the table consists of STR2UTF or UTF2STR (case insensitive) then conversion to or from UTF-8 takes place. |
Latest revision as of 16:42, 18 March 2018
The Xlate$ internal function returns a string translated using a second string as a translation table. If a position is specified, it starts at that position of the first string; otherwise it starts at the first character.
XLATE$(<string>,<translation string>[,<position>])
Comments and Examples
XLATE$(A$,B$,X)
Whenever ASCII character null (CHR$(0)) is found in A$, it is replaced by the first character in B$. ASCII character Ctrl-A (CHR$(1)) is replaced by the second character in B$. In other words, ASCII character N-1 is replaced by the Nth character of B$. ASCII values greater than LEN(B$)-1 are not changed.
00100 LET Y$=XLATE$(X$,TABLE$)
In line 100, Y$ will be a translation of X$ using Table$. For example, spaces (ASCII value 32) will be replaced by Table$(33:33), the character in the 33rd position of Table$.
UTF-8 / UTF8 Support
If the first 7 bytes of the table consists of STR2UTF or UTF2STR (case insensitive) then conversion to or from UTF-8 takes place.
XLATE$(A$,"str2utf") ! converts A$ to UTF-8
Related Functions
During input or output operations, data can be translated (for example from ASCII to EBCDIC) by using the TRANSLATE= parameter in the OPEN statement.