Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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 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 stringused 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 valid format, such as string ​"cities_0001", ​the format will be cities<​v1,​4> ​where 4 is the padding ​number.+  * ''​cities_<​v1>''​ with 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.