config greater greater name: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
No edit summary
(note modified & see also)
Line 22: Line 22:
| x1 = <code>[[configFile]] [[config greater greater name|>>]] "CfgVehicles";</code> | = Example 1
| x1 = <code>[[configFile]] [[config greater greater name|>>]] "CfgVehicles";</code> | = Example 1


| [[configFile]], [[config/name]], [[configName]], [[count]], [[getText]], [[isArray]], [[isClass]], [[isNumber]], [[isText]], [[select]] |= See also
| [[configFile]], [[config/name]], [[configName]], [[count]], [[getText]], [[isArray]], [[isClass]], [[isNumber]], [[isText]], [[select]], [[configClasses]] |= See also


}}
}}
Line 29: Line 29:
<dl class="command_description">
<dl class="command_description">
<!-- Note Section BEGIN -->
<!-- Note Section BEGIN -->
<dd class="notedate">Posted on Apr 3, 2014 - 00:37
<dd class="notedate">Posted on Jul 19, 2014 - 20:08
<dt class="note">'''[[User:ffur2007slx2_5|ffur2007slx2_5]]'''<dd class="note">
<dt class="note">'''[[User:ffur2007slx2_5|ffur2007slx2_5]]'''<dd class="note">
In ArmA3 ver 1.14 there’re several comfortable workarounds with [[configFile]] for collecting subclasses. As for traditional workaround like:
(ArmA3 1.24) It is recommended to use [[configClasses]] instead of [[BIS_fnc_getCfgSubClasses]] and [[BIS_fnc_uniqueClasses]] on subclasses collection or conditional selection.
<code>
<code>
(configfile >> "CfgFaces") call {
_faces = "[[true]]" [[configClasses]] ([[configFile]] >> "Cfgfaces");
  private ["_classes"];
//same as: _faces = (configfile >> "CfgFaces") [[call]] [[BIS_fnc_getCfgSubClasses]];
  _classes = [];
  for "_i" from 0 to ((count _this) - 1) do 
  {
    if (isClass (_this select _i)) then
  {
  _classes set [count _classes, configName (_this select _i)];
  };
  };
  _classes
};
//return: ["Default"……"O_Colonel"] 8 items
</code>
</code>
Alternative recommended workaround by using: [[BIS_fnc_getCfgSubClasses]] e.g.
<code>
<code>
(configfile >> "CfgFaces") call BIS_fnc_getCfgSubClasses
//Extract all animals:
//Same as traditional workaround
animals = "(([[configName]] _x) [[isKindOf]] 'animal')" [[configClasses]] ([[configFile]] >> "CfgVehicles");
/*same as:
aniamls = [];
[([[configFile]] >> "CfgVehicles"),{
[[if]] (([[configName]] _this) [[isKindOf]] “animal”) [[then]] {
  animals [[set]] [ [[count]] animals, _this]
  }
}
] [[call]] [[BIS_fnc_uniqueClasses]];*/
</code>
</code>
Another powerful replacement is using [[BIS_fnc_returnChildren]] to collect grandchildren classes with desired level, e.g.
Return nested subclasses, currently still [[BIS_fnc_returnChildren]]
<code>
<code>
[(configfile >> "CfgFaces"),1,true,true] call BIS_fnc_returnChildren;
//Return all nested config classes.<br>
//Return all children faces with a total number at 68
[([[configFile]] >> "CfgFaces"),1, [[true]], [[true]] ] [[call]] [[BIS_fnc_returnChildren]];
</code>
</code>
And as for another advanced workaround for direct processing collected classes, use [[BIS_fnc_uniqueClasses]]. E.g.
<code>
my_array = [];
[(configfile >> "BombCrater"),
  {
    my_array set [count my_array,(_this select 2) call bis_fnc_getcfgdata]
  }
] call BIS_fnc_uniqueClasses;
//return [[0,0,0],[0,0,0],[0,0,0]]
</code>
<!-- Note Section END -->
<!-- Note Section END -->
</dl>
</dl>

Revision as of 13:24, 19 July 2014

-wrong parameter ("Arma") defined!-1.00
Hover & click on the images for description

Description

Description:
Returns subentry of config entry with given name. Identical to config/name.
Groups:
Uncategorised

Syntax

Syntax:
config >> name
Parameters:
config: Config
name: String
Return Value:
Config

Examples

Example 1:
configFile >> "CfgVehicles";

Additional Information

See also:
configFileconfig/nameconfigNamecountgetTextisArrayisClassisNumberisTextselectconfigClasses

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

Notes

Posted on Jul 19, 2014 - 20:08
ffur2007slx2_5
(ArmA3 1.24) It is recommended to use configClasses instead of BIS_fnc_getCfgSubClasses and BIS_fnc_uniqueClasses on subclasses collection or conditional selection. _faces = "true" configClasses (configFile >> "Cfgfaces"); //same as: _faces = (configfile >> "CfgFaces") call BIS_fnc_getCfgSubClasses; //Extract all animals: animals = "((configName _x) isKindOf 'animal')" configClasses (configFile >> "CfgVehicles"); /*same as: aniamls = []; [(configFile >> "CfgVehicles"),{ if ((configName _this) isKindOf “animal”) then { animals set [ count animals, _this] } } ] call BIS_fnc_uniqueClasses;*/ Return nested subclasses, currently still BIS_fnc_returnChildren //Return all nested config classes.
[(configFile >> "CfgFaces"),1, true, true ] call BIS_fnc_returnChildren;

Bottom Section