format: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "\[\[[cC]ategory:[sS]cripting [cC]ommands\|[a-z A-Z 0-9_]+\]\]" to "")
mNo edit summary
 
(33 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{RV|type=command
{{RV|type=command


| ofp
|game1= ofp
|version1= 1.00


|1.00
|game2= ofpe
|version2= 1.00


|gr1= Strings
|game3= arma1
|version3= 1.00


| Composes a string containing other variables or other variable types. Converts any variable type to a string. If you want to convert a string back to a number, use [[parseNumber]]. <br><br>
|game4= arma2
{{Important | The output of this command is limited to ~8Kb. [[joinString]] on the other hand doesn't have such limit}}
|version4= 1.00


| '''format''' [formatString, var1, var2 ...]
|game5= arma2oa
|version5= 1.50


|p1= [formatString, var1, var2 ...]: [[Array]]
|game6= tkoh
|version6= 1.00


|p2= formatString: [[String]] - a string containing text and/or references to the variables listed below in the array. The references appear in the form of %1, %2 etc.
|game7= arma3
|version7= 0.50


|p3= var1: [[Any Value]] - variable referenced by %1
|gr1= Strings


|p4= var2: [[Any Value]] - variable referenced by %2
|descr= Composes a string containing other variables or other variable types. Converts any variable type to a string. If you want to convert a string back to a number, use [[parseNumber]].
{{Feature | important | The output of this command is limited to ~8Kb. [[joinString]] on the other hand doesn't have such limit and is a bit faster.}}


| [[String]] - 
{{Feature|informative|Since {{GVI|arma3|2.20}} the maximum length of the string is {{hl|8388608}} characters. Additionally, two consecutive percent symbols will be formatted to a single percent symbol in the final string {{hl|(%% -> %)}}}}
The full string (up to 8kb, see above) is returned.
 
|x1= <code>[[format]] ["Player:%1, player's side:%2", [[player]], [[side]] [[player]]];</code>


returns "Player:WEST 1-1-A:1 (Username), player's side:WEST"
|s1= [[format]] [formatString, var1, var2, ...]


|x2= <code>[[player]] [[addEventHandler]] ["HandleDamage", {
|p1= formatString: [[String]] - a string containing text and/or references to the variables listed below in the array. The references appear in the form of %1, %2 etc.
[[hint]] [[format]] ["You just sustained %1%2 damage!", [[ceil]] (([[_this]] [[select]] 2) * 100), "%"];
}];</code>


hints "You just sustained 20% damage!"
|p2= varN: [[Anything]] - variable referenced by %N


| [[formatText]], [[endl]], [[str]], [[toString]], [[joinString]]
|r1= [[String]] - the full string (up to 8kb, see above) is returned.
}}


<dl class="command_description">
|x1= <sqf>format ["Player:%1, player's side:%2", player, side player]; // returns "Player:WEST 1-1-A:1 (Username), player's side:WEST"</sqf>
<!-- Note Section BEGIN -->


<dt class="note">[[User:Worldeater|Worldeater]]<dd class="note">
|x2= <sqf>
The maximum number of characters returned by the ''format'' command seems to depend on the total byte count. For plain ASCII strings the limit is 2048 characters.
player addEventHandler ["HandleDamage", {
hint format ["You just sustained %1%2 damage!", ceil ((_this select 2) * 100), "%"];
}]; // Shows "You just sustained 20% damage!"
</sqf>


<dt class="note">[[User:Killzone_Kid|Killzone_Kid]]<dd class="note">In Arma 3 the max length of [[String]] returned by [[format]] command seems to be 8191 characters. [[formatText]] doesn't seem to have this limitation.
|x3= <sqf>
// Since Arma 3 v2.18 two consecutive percent symbols will be formatted to a single percent symbol in the final string (%% -> %)
player addEventHandler ["HandleDamage", {
hint format ["You just sustained %1%% damage!", ceil ((_this select 2) * 100)];
}]; // Shows "You just sustained 20% damage!"
</sqf>


|seealso= [[formatText]] [[endl]] [[str]] [[toString]] [[joinString]]
}}


<!-- Note Section END -->
{{Note
</dl>
|user= Worldeater
|timestamp= 20090302151200
|text= The maximum number of characters returned by the ''format'' command seems to depend on the total byte count. For plain ASCII strings the limit is 2048 characters.
|game= arma2
}}


 
{{Note
[[Category:Scripting Commands OFP 1.99|{{uc:{{PAGENAME}}}}]]
|user= Heeeere's Johnny!
[[Category:Scripting Commands OFP 1.96|FORMAT]]
|timestamp= 20150328092200
[[Category:Scripting Commands OFP 1.46|FORMAT]]
|text= In addition to the note above, [[formatText]]ed strings are [[Structured Text]], hence cannot be used like [[format]]ted strings (with most scripting commands). A workaround to get strings of type [[String]] with more than 8191 characters is:
{{GameCategory|arma1|Scripting Commands}}
<sqf>str formatText ["%1", _string]</sqf>
{{GameCategory|arma2|Scripting Commands}}
}}
{{GameCategory|arma3|Scripting Commands}}
{{GameCategory|tkoh|Scripting Commands}}
 
<!-- CONTINUE Notes -->
<dl class="command_description">
<dd class="notedate">Posted on March 28, 2015 - 09:22 (UTC)</dd>
<dt class="note">[[User:Heeeere's Johnny!|Heeeere's Johnny!]]</dt>
<dd class="note">
In addition to the note above, [[formatText]]ed strings are [[Structured Text]], hence cannot be used like [[format]]ted strings (with most scripting commands). A workaround to get strings of type [[String]] with more than 8191 characters is:<code>[[str]] [[formatText]] ["%1", _string]</code>
</dd>
 
<dd class="notedate">Posted on January 2, 2016 - 10:22 (UTC)</dd>
<dt class="note">[[User:Killzone Kid|Killzone Kid]]</dt>
<dd class="note">
In addition to the note above, you may consider using [[joinString]] instead of [[format]] or [[formatText]] workaround. [[joinString]] is a fraction faster than [[format]] and it has no limit on the length of the string (apart from global [[String]] limit obviously)
</dd>
</dl>
<!-- DISCONTINUE Notes -->

Latest revision as of 16:18, 3 November 2024

Hover & click on the images for description

Description

Description:
Composes a string containing other variables or other variable types. Converts any variable type to a string. If you want to convert a string back to a number, use parseNumber.
The output of this command is limited to ~8Kb. joinString on the other hand doesn't have such limit and is a bit faster.
Since Arma 3 logo black.png2.20 the maximum length of the string is 8388608 characters. Additionally, two consecutive percent symbols will be formatted to a single percent symbol in the final string (%% -> %)
Groups:
Strings

Syntax

Syntax:
format [formatString, var1, var2, ...]
Parameters:
formatString: String - a string containing text and/or references to the variables listed below in the array. The references appear in the form of %1, %2 etc.
varN: Anything - variable referenced by %N
Return Value:
String - the full string (up to 8kb, see above) is returned.

Examples

Example 1:
format ["Player:%1, player's side:%2", player, side player]; // returns "Player:WEST 1-1-A:1 (Username), player's side:WEST"
Example 2:
player addEventHandler ["HandleDamage", { hint format ["You just sustained %1%2 damage!", ceil ((_this select 2) * 100), "%"]; }]; // Shows "You just sustained 20% damage!"
Example 3:
// Since Arma 3 v2.18 two consecutive percent symbols will be formatted to a single percent symbol in the final string (%% -> %) player addEventHandler ["HandleDamage", { hint format ["You just sustained %1%% damage!", ceil ((_this select 2) * 100)]; }]; // Shows "You just sustained 20% damage!"

Additional Information

See also:
formatText endl str toString joinString

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note
Worldeater - c
Posted on Mar 02, 2009 - 15:12 (UTC)

The maximum number of characters returned by the format command seems to depend on the total byte count. For plain ASCII strings the limit is 2048 characters.

Heeeere's Johnny! - c
Posted on Mar 28, 2015 - 09:22 (UTC)
In addition to the note above, formatTexted strings are Structured Text, hence cannot be used like formatted strings (with most scripting commands). A workaround to get strings of type String with more than 8191 characters is:
str formatText ["%1", _string]