String: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
Lou Montana (talk | contribs) m (Text replacement - "\{\{ *Wikipedia *\| *([-a-zA-Z0-9_#':%\/\\]+) *\| *([-a-zA-Z0-9_#':%\/\\ ]+) *\}\}" to "{{Link|https://en.wikipedia.org/wiki/$1|$2}}") |
||
(34 intermediate revisions by 11 users not shown) | |||
Line 1: | Line 1: | ||
{{TOC|side}} | |||
A '''string''' is a [[:Category:Data Types|variable type]] that contains text. Possible length and characters depend on the game and its version. | |||
{{Feature|informative|The encoding should be mostly transparent. The input files can be encoded both in UTF-16 or UTF-8, the [[toString]] and [[toArray]] functions always convert from/to UTF-16 representation.}} | |||
== Properties == | |||
{| class="wikitable" style="text-align: center" | |||
! | |||
! {{Name|ofp|short}} | |||
! {{Name|arma1|short}} | |||
! {{Name|arma2|short}} | |||
! {{Name|arma2oa|short}} | |||
! {{Name|tkoh|short}} | |||
! {{Name|arma3|short}} (before v1.56) | |||
! {{Name|arma3|short}} (since v1.56) | |||
|- | |||
! Max length | |||
| 2056 | |||
| colspan="5" | No set limit | |||
| 9,999,999 to 10,000,000<br>(same as [[Array]] length) | |||
|- | |||
! Encoding | |||
| {{Link|https://en.wikipedia.org/wiki/ASCII|ASCII}} | |||
| colspan="6" | {{Link|https://en.wikipedia.org/wiki/Unicode|Unicode}} | |||
|- | |||
! {{Link|https://en.wikipedia.org/wiki/Code_page|Code page}} | |||
| product language defined | |||
| colspan="6" | {{Link|https://en.wikipedia.org/wiki/UTF-8|UTF-8}} | |||
|- | |||
! "text" | |||
| colspan="7" | {{Icon|checked}} | |||
|- | |||
! 'text' | |||
| {{Icon|unchecked}} | |||
| colspan="6" | {{Icon|checked}} | |||
|- | |||
! {text} | |||
| {{Icon|checked}} | |||
| colspan="6" | {{Icon|unchecked}} | |||
|} | |||
== Commands and Functions == | |||
* [[:Category:Command Group: Strings|String Scripting Commands]] | |||
* [[:Category:Function Group: Strings|String Functions]] | |||
== Single quote limitation == | |||
Other than double quotes ("text"), single quotes ('text') do not seem to support tabs: | |||
<sqf> | |||
_string = " | |||
"; | |||
copyToClipboard _string; | |||
diag_log format ["%1 %2 %3 x%4x", toArray _string, toArray copyFromClipboard, toArray (_string select [0]), _string]; | |||
/* | |||
return is good: "[9,10,9] [9,10,9] [9,10,9] x | |||
x" | |||
*/ | |||
</sqf> | |||
[[Category: Types]] | <sqf> | ||
_string = ' | |||
'; | |||
copyToClipboard _string; | |||
diag_log format ["%1 %2 %3 x%4x", toArray _string, toArray copyFromClipboard, toArray (_string select [0]), _string]; | |||
/* | |||
return: "[9,10] [9,10] [9,10] x | |||
x" - second tab vanished | |||
*/ | |||
</sqf> | |||
<small>Example courtesy of {{Link|http://forums.bistudio.com/member.php?81568-Rydygier|Rydygier}}</small> | |||
== Examples == | |||
=== Quotes in Quotes === | |||
<sqf> | |||
private _string = "my string ""with"" quotes"; | |||
private _string = 'my string "with" quotes'; | |||
private _string = 'my string with quotes'; | |||
</sqf> | |||
=== String Formats === | |||
<sqf> | |||
// Operation Flashpoint | |||
_string = "Hello there" // works | |||
_string = 'Hello there' // does NOT work | |||
_string = {Hello there} // works | |||
</sqf> | |||
<sqf> | |||
// since Armed Assault | |||
_string = "Hello there" // works | |||
_string = 'Hello there' // works | |||
_string = {Hello there} // does NOT work | |||
</sqf> | |||
=== Operators === | |||
<sqf>private _finalString = "Hello" + " " + "there"; // outputs "Hello there" - the + sign concatenates strings</sqf> | |||
The only basic operator to be used on strings is "plus". You can use "plus" to concatenate two strings. | |||
=== Conversion === | |||
<sqf> | |||
private _value = 42; // this is a Number | |||
hint _value; // error - hint takes a String, not a Number | |||
hint format ["%1", _value]; // ok | |||
hint str _value; // ok - since Armed Assault | |||
</sqf> | |||
[[Category: Data Types]] |
Latest revision as of 01:47, 24 February 2023
A string is a variable type that contains text. Possible length and characters depend on the game and its version.
Properties
OFP | ArmA | Arma 2 | Arma 2:OA | TKOH | Arma 3 (before v1.56) | Arma 3 (since v1.56) | |
---|---|---|---|---|---|---|---|
Max length | 2056 | No set limit | 9,999,999 to 10,000,000 (same as Array length) | ||||
Encoding | ASCII | Unicode | |||||
Code page | product language defined | UTF-8 | |||||
"text" | ![]() | ||||||
'text' | ![]() |
![]() | |||||
{text} | ![]() |
![]() |
Commands and Functions
Single quote limitation
Other than double quotes ("text"), single quotes ('text') do not seem to support tabs:
_string = "
";
copyToClipboard _string;
diag_log format ["%1 %2 %3 x%4x", toArray _string, toArray copyFromClipboard, toArray (_string select [0]), _string];
/*
return is good: "[9,10,9] [9,10,9] [9,10,9] x
x"
*/
_string = '
';
copyToClipboard _string;
diag_log format ["%1 %2 %3 x%4x", toArray _string, toArray copyFromClipboard, toArray (_string select [0]), _string];
/*
return: "[9,10] [9,10] [9,10] x
x" - second tab vanished
*/
Example courtesy of Rydygier
Examples
Quotes in Quotes
String Formats
Operators
The only basic operator to be used on strings is "plus". You can use "plus" to concatenate two strings.