format: Difference between revisions

From Bohemia Interactive Community
m (Text replacement - "\{\{( *)Important( *)\|" to "{{$1Feature$2|$2important$2|")
m (Some wiki formatting)
 
(35 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
{{Feature | 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.


| [[String]] - 
{{Feature|important|
The full string (up to 8kb, see above) is returned.
* To convert a string back to a number, see [[parseNumber]].
 
* [[joinString]] can be a bit faster, without string length limitation.
|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"
{{Feature|informative|
 
* the maximum length of the string is 8,388,608 characters (was ''8191'' before)
|x2= <code>[[player]] [[addEventHandler]] ["HandleDamage", {
* two consecutive percent symbols will be formatted to a single percent symbol in the final string (see {{Link|#Example 3}})
[[hint]] [[format]] ["You just sustained %1%2 damage!", [[ceil]] (([[_this]] [[select]] 2) * 100), "%"];
Since {{GVI|arma3|2.18|size= 0.75}}
}];</code>
}}


hints "You just sustained 20% damage!"
|s1= [[format]] [formatString, var1, var2, ...]


| [[formatText]], [[endl]], [[str]], [[toString]], [[joinString]]
|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.
}}


<dl class="command_description">
|p2= varN: [[Anything]] - variable referenced by %N
<!-- Note Section BEGIN -->


<dt class="note">[[User:Worldeater|Worldeater]]<dd class="note">
|r1= [[String]] - the full string (up to 8kb, see above) is returned.
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.


<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.
|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>


|x2= <sqf>
player addEventHandler ["HandleDamage", {
hint format ["You just sustained %1%2 damage!", ceil ((_this select 2) * 100), "%"];
}]; // Shows "You just sustained 20% damage!"
</sqf>


<!-- Note Section END -->
|x3= <sqf>
</dl>
// Since {{arma3}} 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]]
}}


[[Category:Scripting Commands OFP 1.99|{{uc:{{PAGENAME}}}}]]
{{Note
[[Category:Scripting Commands OFP 1.96|FORMAT]]
|user= Worldeater
[[Category:Scripting Commands OFP 1.46|FORMAT]]
|timestamp= 20090302151200
{{GameCategory|arma1|Scripting Commands}}
|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.
{{GameCategory|arma2|Scripting Commands}}
|game= arma2
{{GameCategory|arma3|Scripting Commands}}
}}
{{GameCategory|tkoh|Scripting Commands}}


<!-- CONTINUE Notes -->
{{Note
<dl class="command_description">
|user= Heeeere's Johnny!
<dd class="notedate">Posted on March 28, 2015 - 09:22 (UTC)</dd>
|timestamp= 20150328092200
<dt class="note">[[User:Heeeere's Johnny!|Heeeere's Johnny!]]</dt>
|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:
<dd class="note">
<sqf>str formatText ["%1", _string]</sqf>
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:09, 13 March 2026

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.
  • To convert a string back to a number, see parseNumber.
  • joinString can be a bit faster, without string length limitation.
  • the maximum length of the string is 8,388,608 characters (was 8191 before)
  • two consecutive percent symbols will be formatted to a single percent symbol in the final string (see Example 3)
Since Arma 3 logo black.png 2.18
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.
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]