This version is out of date, covering development from v9.0.0 to v9.3.0. It is maintained here only for inbound reference links from elsewhere. It is no longer actively updated.

Jump to the current version of aTbRef

Tinderbox v9 Icon

String.tr("dataIn","dataOut")


Operator Type: 

Operator Scope of Action: 

Operator Purpose: 

Operator First Added: 

Operator Altered: 

 Function   [other Function type actions]

 Item   [operators of similar scope]

 Data manipulation   [other Data manipulation operators]

 Baseline

 


$MyString.tr("dataIn","dataOut")

This operator allows simple single character string manipulation. It computes a new string, copying each character of $MyString but converting any characters in dataIn to the corresponding characters in dataOut. For example:

$MyString = $MyString.tr("a","A"); 

returns a copy of MyString in which every "a" is converted to "A".

Backslash characters must be quoted and escaped:

$MyString = $MyString.tr("c","\\r"); 

converts every "c" to a Macintosh newline characters (\r). Note the need in this context for an extra backslash escape (so Tinderbox knows the intended swap value is "\r" and not "r").

Multiple characters can be replaced:

$MyString = "Hello, world".tr("aeiou","AEIOU"); gives "HEllO, wOrld"

Note that in the later example the number of characters in dataIn and dataOut must match and pairs must list in order, otherwise unmatched characters will as as for the syntax below.

$MyString.tr("dataIn")

If dataOut is omitted or left empty, any matches to dataIn are deleted from the referenced string.

$MyString = "Hello, world".tr("aeiou"); 

gives "Hll, wrld"

For further information, see the macOS man page for the UNIX tr command.

Performance

If using actions with a lot of .tr() calls, based on some testing in large complex docs, it may—counter-intuitively—be faster using .replace() instead.