Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | |||
|
create_string [2016/02/09 01:54] admin [Notes] |
create_string [2026/08/20 02:01] (current) hermann |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Create String ====== | + | ====== Create String ====== |
| ===== Description ===== | ===== Description ===== | ||
| - | This functor generates a string based on contained parameters and a pre-defined format string. | + | ''Create String'' is a **container** functor that builds an output string from a format string and a set of connected values or strings, substituting each connected item into the format string at the position of its tag. It is part of the calculator family in the sense that it accepts hook functors ([[number_value|Number Value]], [[number_string|Number String]]) placed inside it, but unlike [[calculate_value|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 ===== | ===== Inputs ===== | ||
| ^ Name ^ Type ^ Description ^ | ^ Name ^ Type ^ Description ^ | ||
| - | | Format | [[ String Type|String ]] | The format string, used to generate the final string. | | + | | Format | [[string_type|String Type]] | The format string used to generate the output string, built from literal text plus tags that reference connected hook functors: ''<vN>'' for the Nth connected [[number_value|Number Value]], ''<sN>'' for the Nth connected [[number_string|Number String]]. A numeric tag can add padding, or padding and precision together, as ''<vN,padding>'' or ''<vN,padding,precision>''. See Notes for worked examples. | |
| - | + | ||
| - | ===== Optional Inputs ===== | + | |
| ===== Outputs ===== | ===== Outputs ===== | ||
| ^ Name ^ Type ^ Description ^ | ^ Name ^ Type ^ Description ^ | ||
| - | | Result | [[ String Type|String ]] | The string generated by this functor. | | + | | Result | [[string_type|String Type]] | The string generated by substituting the connected values/strings into the format string. | |
| ===== Group ===== | ===== Group ===== | ||
| - | [[Functor List#Map Algebra | Map Algebra]] | + | [[functor_list#map_algebra|Map Algebra]] |
| - | ===== Notes ===== | + | ===== Notes ===== |
| - | The output string is built from "blocks of strings" inside the format string. | + | ==== Hooks and tag syntax ==== |
| - | For example, if you want an output string "cities_87", where 87 is a number that comes from the [[Step]] functor, you need to write the format string as: \\ | + | Like the calculator functors, ''Create String'' takes its data through hook functors placed inside it — [[number_value|Number Value]] for numbers, [[number_string|Number String]] for strings — each assigned a number that the format string references by its tag (''<v1>'', ''<s1>'', and so on). This is the same verbose-form hook mechanism used by expression-based calculators (see [[ego_script#verbose_form|Verbose form]]), except the reference sits inside a literal format string rather than an algebraic expression, and there is no separate abbreviated-syntax form for ''Create String''. |
| - | cities_<v1> where v1 represents a [[Number Value]] functor inside the "Create String" container. | + | |
| - | Likewise, if you want to output a string "capitals_1.200", the format will be: \\ | + | ==== Format examples ==== |
| - | capitals_<v1,0,3>, where 1.2 comes from the number value with a precision of 3 digits. | + | |
| - | For a valid format, such as string "cities_0001", the format will be cities<v1,4> where 4 is the padding number. | + | * ''cities_<v1>'' with a Number Value of ''87'' produces ''"cities_87"''. |
| + | * ''capitals_<v1,0,3>'' with a value of ''1.2'' (padding ''0'', precision ''3'') produces ''"capitals_1.200"''. | ||
| + | * ''cities_<v1,4>'' with a value of ''1'' (padding ''4'', no precision) produces ''"cities_0001"''. | ||
| + | * ''big_<s1>'' with a Number String of ''"city"'' produces ''"big_city"''. | ||
| + | * ''cities_\<<v1>>'' with a value of ''87'' produces ''"cities_<87>"'' — prefixing ''<'' with a backslash turns it into a literal character instead of starting a tag. | ||
| - | Also you can replace parts of the input string with other strings, such as "big_city". In this case, the format string will be: \\ | + | ===== Internal Name ===== |
| - | big_<s1> where s1 represents a Number String functor within the "Create String" container. | + | |
| - | You can prefix "<" with a backslash ("\") to turn it into an ordinary character. For exemple, if you want an output string "cities_<87>", where 87 comes from another functor, you need to write the format string as: \\ | + | ''CreateString'' |
| - | <nowiki>cities_\<<v1>></nowiki> | + | |
| - | + | ||
| - | ===== 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 ''<v1>''/''<v2>'' 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. | ||