getArray: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "{{Command " to "{{RV|type=command ")
m (Some wiki formatting)
 
(60 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{RV|type=command
{{RV|type=command


| arma1
|game1= arma1
|version1= 1.00
 
|game2= arma2
|version2= 1.00
 
|game3= arma2oa
|version3= 1.50
 
|game4= tkoh
|version4= 1.00
 
|game5= arma3
|version5= 0.50


|gr1= Config
|gr1= Config


|1.00
|descr= Extract array from config entry.


| Extract array from config entry.
|s1= [[getArray]] config


| [[Array]] <nowiki>=</nowiki> '''getArray''' config
|p1= config: [[Config]]


|p1= config: [[Config]]
|r1= [[Array]]


| [[Array]]
|x1= <sqf>_array = getArray (configFile >> "CfgVehicles" >> "Thing" >> "threat");</sqf>
 
|x1= <pre>_array = getArray (configFile >> "CfgVehicles" >> "Thing" >> "threat")</pre>


| [[configFile]], [[config/name]], [[configName]], [[count]], [[getText]], [[getNumber]], [[inheritsFrom]], [[isArray]], [[isClass]], [[isNumber]], [[isText]], [[select]]
|seealso= [[configFile]] [[a / b]] [[configName]] [[count]] [[getText]] [[getNumber]] [[inheritsFrom]] [[isArray]] [[isClass]] [[isNumber]] [[isText]] [[select]]
}}
}}


<dl class="command_description">
{{Note
<!-- Note Section BEGIN -->
|user= ffur2007slx2_5
<dd class="notedate">Posted on Mar 28, 2014 - 07:52
|timestamp= 20140328075200
<dt class="note">[[User:ffur2007slx2_5|ffur2007slx2_5]]<dd class="note">
|text= ({{arma3}} 1.14) It's recommended to use [[BIS_fnc_getCfgData]] or [[BIS_fnc_returnConfigEntry]] to get variable cfg data rather than conditioning via [[isNumber]], [[isText]], [[isArray]], [[getNumber]], [[getText]] and [[getArray]] combination.<br>
(ArmA3 1.14) It's recommended to use [[BIS_fnc_GetCfgData]] or [[BIS_fnc_returnConfigEntry]] to get variable cfg data rather than conditioning via [[isNumber]], [[isText]], [[isArray]], [[getNumber]], [[getText]] and [[getArray]] combination.<br>
Traditional workaround:
Traditional workaround:
<code>
<sqf>
_cfg = [[configFile]] >> "CfgVehicles" >> _SomeAddonClassName >> "DestructionEffects" >> "Smoke1" >> "type"
_cfg = configFile >> "CfgVehicles" >> _SomeAddonClassName >> "DestructionEffects" >> "Smoke1" >> "type";
[[switch]] ( [[true]] ) [[do]]
switch ( true ) do
{
{
[[case]] ([[isNumber]] _cfg): {[[getNumber]] _cfg};
case (isNumber _cfg): {getNumber _cfg};
[[case]] ([[isText]] _cfg): {[[getText]] _cfg};
case (isText _cfg): {getText _cfg};
[[case]] ([[isArray]] _cfg): {[[getArray]] _cfg;};
case (isArray _cfg): {getArray _cfg;};
[[default]] { nil };
default { nil };
};
};
</code>
</sqf>
'''Recommended workaround:'''
'''Recommended workaround:'''
<code>
<sqf>(configFile >> "CfgVehicles" >> _SomeAddonClassName >> "DestructionEffects" >> "Smoke1" >> "type") call BIS_fnc_getCfgData;</sqf>
([[configFile]] >> "CfgVehicles" >> _SomeAddonClassName >> "DestructionEffects" >> "Smoke1" >> "type") [[call]] [[BIS_fnc_GetCfgData]];
To return default value once entry was not found, we can use [[BIS_fnc_returnConfigEntry]] instead of [[BIS_fnc_getCfgData]].
</code>
<sqf>[(configFile >> "CannonFire" >> "LightExp"),"lifeTime",0] call BIS_fnc_returnConfigEntry; // 0.5</sqf>
To return default value once entry was not found, we can use [[BIS_fnc_returnConfigEntry]] instead of [[BIS_fnc_GetCfgData]].
}}
<code>
[([[configFile]] >> "CannonFire" >> "LightExp"),"lifeTime",0] [[call]] [[BIS_fnc_returnConfigEntry]];//0.5
</code>
<!-- Note Section END -->
</dl>


[[Category:Scripting Commands|GETARRAY]]
{{Note
{{GameCategory|arma1|Scripting Commands}}
|user= demellion
{{GameCategory|arma2|Scripting Commands}}
|timestamp= 20180112194800
{{GameCategory|arma3|Scripting Commands}}
|text= There is special behaviour if you try to read a description.ext config entry [[Array]] that contains a [[Boolean]].<br>
{{GameCategory|tkoh|Scripting Commands}}
 
 
<!-- CONTINUE Notes -->
<dl class="command_description">
<dd class="notedate">Posted on January 12, 2018 - 19:48 (UTC)</dd>
<dt class="note">[[User:demellion|demellion]]</dt>
<dd class="note">
There is special behaviour if you try to read a description.ext config entry [[Array]] that contains a [[Boolean]].<br>
Getting array in '''MP''' will result in [[Number]], while '''SP''' will return [[String]].
Getting array in '''MP''' will result in [[Number]], while '''SP''' will return [[String]].
<code>// SP with false in array
<sqf>
[[getArray]] ([[missionConfigFile]] >> "someClass" >> "someArray") // -> "false"
// SP with false in array
getArray (missionConfigFile >> "someClass" >> "someArray") // -> "false"


// MP with false in array
// MP with false in array
[[getArray]] ([[missionConfigFile]] >> "someClass" >> "someArray") // -> 0</code>
getArray (missionConfigFile >> "someClass" >> "someArray") // -> 0
</dd>
</sqf>
</dl>
}}
<!-- DISCONTINUE Notes -->

Latest revision as of 23:30, 13 May 2023

Hover & click on the images for description

Description

Description:
Extract array from config entry.
Groups:
Config

Syntax

Syntax:
getArray config
Parameters:
config: Config
Return Value:
Array

Examples

Example 1:
_array = getArray (configFile >> "CfgVehicles" >> "Thing" >> "threat");

Additional Information

See also:
configFile a / b configName count getText getNumber inheritsFrom isArray isClass isNumber isText select

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
ffur2007slx2_5 - c
Posted on Mar 28, 2014 - 07:52 (UTC)
(Arma 3 1.14) It's recommended to use BIS_fnc_getCfgData or BIS_fnc_returnConfigEntry to get variable cfg data rather than conditioning via isNumber, isText, isArray, getNumber, getText and getArray combination.
Traditional workaround:
_cfg = configFile >> "CfgVehicles" >> _SomeAddonClassName >> "DestructionEffects" >> "Smoke1" >> "type"; switch ( true ) do { case (isNumber _cfg): {getNumber _cfg}; case (isText _cfg): {getText _cfg}; case (isArray _cfg): {getArray _cfg;}; default { nil }; };
Recommended workaround:
(configFile >> "CfgVehicles" >> _SomeAddonClassName >> "DestructionEffects" >> "Smoke1" >> "type") call BIS_fnc_getCfgData;
To return default value once entry was not found, we can use BIS_fnc_returnConfigEntry instead of BIS_fnc_getCfgData.
[(configFile >> "CannonFire" >> "LightExp"),"lifeTime",0] call BIS_fnc_returnConfigEntry; // 0.5
demellion - c
Posted on Jan 12, 2018 - 19:48 (UTC)
There is special behaviour if you try to read a description.ext config entry Array that contains a Boolean.
Getting array in MP will result in Number, while SP will return String.
// SP with false in array getArray (missionConfigFile >> "someClass" >> "someArray") // -> "false" // MP with false in array getArray (missionConfigFile >> "someClass" >> "someArray") // -> 0