Description
Audit exact INI section/key duplicate observations without conflating equal key names in different sections; case-sensitive explicit-record dialect.
INI-like configuration formats vary between applications. In this tool family, assignments are explicit section/name/value records and the empty section string means global scope. Duplicate-key policies, case handling and preservation of comments are separate choices rather than one universal INI behavior.
Audit exact INI section/key duplicate observations without conflating equal key names in different sections; case-sensitive explicit-record dialect.
When to use this tool
Use this tool to audit exact INI section/key duplicate observations without conflating equal key names in different sections; case-sensitive explicit-record dialect.
How to use the tool and how it works
- Enter recordsJson using the field definitions below. For JSON text, serialize the explicit records in the shown shape.
- Run the operation. Correct input errors before interpreting an output.
- Read result.duplicates. Use the ordering, boundary rules and absence conditions described below.
Group exact section/name pairs and report those with multiple original record indexes.1
| Input field | Meaning and units | Accepted input |
|---|---|---|
| recordsJson | JSON text encoding array of {section: string, name: string, value: string}. Keep the record keys and value types shown in the decoded example below. | Text, at most 8,192 UTF-16 code units; the operation’s grammar also applies. |
These are the decoded structures used in the example’s JSON text fields. Supply the corresponding serialized JSON strings as input.
{
"recordsJson": [
{
"section": "a",
"name": "x",
"value": "1"
},
{
"section": "a",
"name": "x",
"value": "2"
},
{
"section": "b",
"name": "x",
"value": "3"
}
]
} | Output field | Interpretation |
|---|---|
| result | Object containing the named fields below. |
| result.duplicates | Repeated exact section/name pairs with original indexes. |
{
"input": {
"recordsJson": "[{\"section\":\"a\",\"name\":\"x\",\"value\":\"1\"},{\"section\":\"a\",\"name\":\"x\",\"value\":\"2\"},{\"section\":\"b\",\"name\":\"x\",\"value\":\"3\"}]"
},
"output": {
"result": {
"duplicates": [
{
"key": "[\"a\",\"x\"]",
"indexes": [
0,
1
]
}
]
}
}
} Limitations and assumptions
- Equal values still count as duplicate assignments; names are case-sensitive.
- Assignment records contain section, name and value strings. Nonempty section/key names cannot have surrounding whitespace, brackets or CR/LF/NUL. Values cannot contain CR/LF/NUL; a key cannot contain equals. No implicit interpolation or typed-value conversion is performed.
- Every declared top-level input field is required and unexpected fields are rejected. Ordinary strings are limited to 8,192 UTF-16 code units and lists to 128 entries, with tighter operation-specific bounds where stated. JSON text has bounded nesting and node counts.
- Numeric outputs must be finite and no larger in absolute magnitude than the safe-integer limit; operations returning exact large integers use decimal text. Positions are zero-based and spans end exclusively unless the operation explicitly states a different convention.
Alternative or Complementary methods
Select the consuming application’s dialect and duplicate-key policy explicitly. Use a lossless configuration editor when comments, original spacing, quoting or application-specific interpolation must be preserved.
References
Similar or alternative tools
- INI Global Key Section Partition
Partition explicit INI key observations between the unsectioned global namespace and named sections; preserves original records, duplicates and empty values.
- INI Section Key Case Collision Audit
Audit INI section/key spelling collisions under an explicit JavaScript lowercase policy, distinct from repeated identical spellings; not a universal INI case rule.