====== Create String ====== ===== Description ===== This container builds an output string from a format string and a set of values or strings identified by [[Number Value]] and [[Number String]] functors placed inside it, substituting each one into the format string at the position of its tag. It accepts hook functors the same way the calculator functors do, but unlike [[Calculate Value]] and the other calculator functors, it does not take a bracketed algebraic expression: Format is a plain string containing literal text plus numbered, type-prefixed tags. ===== Inputs ===== ^ Name ^ Type ^ Description ^ | Format | [[String Type]] | Format string used to generate the output string, built from literal text plus tags that reference the hook functors placed inside this container: for the [[Number Value]] whose Value Number is ''N'', for the [[Number String]] whose Value Number is ''N''. A numeric tag can also add padding, or padding and precision together, as or . See Notes for worked examples. | ===== Optional Inputs ===== None. ===== Outputs ===== ^ Name ^ Type ^ Description ^ | Result | [[String Type]] | String generated by substituting the identified values and strings into the format string. | ===== Group ===== [[Functor List#Map Algebra | Map Algebra]] ===== Notes ===== Every placeholder used in the format string must have a matching [[Number Value]] or [[Number String]] instance inside this container with the same number; otherwise the model raises an error. Conversely, an instance of [[Number Value]] or [[Number String]] placed inside this container but not referenced by any placeholder in the format string reports a warning. Two instances of [[Number Value]] or [[Number String]] placed inside this container cannot share the same Value Number; doing so raises an error. To include a literal "<" in the format string without starting a placeholder, escape it as "\<". Examples: ''cities_'' with a Number Value of 87 produces "cities_87". ''capitals_'' with a value of 1.2 (padding 0, precision 3) produces "capitals_1.200". ''cities_'' with a value of 1 (padding 4, no precision) produces "cities_0001". ''big_'' with a Number String of "city" produces "big_city". ''cities_\<>'' with a value of 87 produces "cities_<87>" -- the backslash before "<" turns it into a literal character instead of starting a tag. ===== Internal Name ===== CreateString ===== Usage examples ===== * [[Manipulating Tables and Lookup Tables#iterating_over_lookup_table_values|Iterating over Lookup Table values]] -- builds a per-row message from a table's key and value using / tags. * [[EGO Script#container_functors|Container functors]] in the EGO Script documentation -- uses Create String with Number Value to embed a computed result inside a message printed after a block completes.