Skip to content

Files

Latest commit

6a636b1 · Nov 28, 2024

History

History

BytecodeApi.IniParser

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Dec 9, 2023
Sep 8, 2023
Nov 28, 2024
Sep 8, 2023
Sep 8, 2023
Sep 8, 2023
Oct 10, 2023
Sep 8, 2023
Sep 8, 2023
Sep 8, 2023
Sep 8, 2023
Nov 19, 2023
Sep 8, 2023
Sep 8, 2023
Nov 19, 2023
Dec 9, 2023

BytecodeApi.IniParser

Library for INI file reading and writing.

Examples

BytecodeApi.IniParser

This example INI file is used in the examples.

global_prop1 = hello
global_prop2 = world

[section1]
key1 = value1
key2 = value2

[section2]
key3 = value3

; A section that occurs multiple times
[section2]
key4 = value 4
Read INI file

Load INI file and retrieve a property:

The Section and Property methods are accessors; The collections of sections and properties can also be queried using LINQ.

// Load INI file:
IniFile iniFile = IniFile.FromFile(@"C:\path\to\file.ini");

// Retrieve "section1"
if (iniFile.Section("section1", true) is IniSection section1) // true = ignore case
{
	// Retrieve property "key1"
	IniProperty? property = section1.Property("key1", true); // true = ignore case
			
	if (property != null)
	{
		// Property value:
		string value = property.Value;
	}
}
Loop through all sections & properties

Loop through the entire contents of an INI file:

// Load INI file:
IniFile iniFile = IniFile.FromFile(@"C:\path\to\file.ini");

// "global properties" are properties without a section. They are on top of the INI file
foreach (IniProperty globalProperty in iniFile.GlobalProperties.Properties)
{
	Console.WriteLine($"Name: {globalProperty.Name}, Value: {globalProperty.Value}");
}

// Loop through all sections:
foreach (IniSection section in iniFile.Sections)
{
	// Loop through section properties:
	foreach (IniProperty property in section.Properties)
	{
		Console.WriteLine($"Section: {section.Name}, Name: {property.Name}, Value: {property.Value}");
	}
}
IniFileParsingOptions

This class is a set of rules that is applied when reading an INI file.

IniFileParsingOptions parsingOptions = new()
{
	PropertyDelimiter = IniPropertyDelimiter.Colon,
	DuplicatePropertyNameBehavior = IniDuplicatePropertyNameBehavior.Overwrite

	// See XML comments for a documentation of each property
};

// Load INI file with custom parsing options:
IniFile iniFile = IniFile.FromFile(@"C:\path\to\file.ini", Encoding.UTF8, parsingOptions);
Write INI file

Either create an IniFile, or load an existing to modify it. Call IniFile.Save to save the new or modified INI file.

IniFile iniFile = new();

iniFile.GlobalProperties.Properties.Add("global_prop1", "hello");
iniFile.GlobalProperties.Properties.Add("global_prop2", "world");

IniSection setion1 = iniFile.Sections.Add("setion1");
setion1.Properties.Add("key1", "value1");
setion1.Properties.Add("key2", "value2");

iniFile.Save(@"C:\path\to\file.ini");
IniFileFormattingOptions

This class is a set of rules that is applied when writing an INI file.

IniFileFormattingOptions formattingOptions = new()
{
	PropertyDelimiter = IniPropertyDelimiter.EqualSign,
	UseNewLineBetweenSections = true
};

iniFile.Save(@"C:\path\to\file.ini", Encoding.UTF8, formattingOptions);

Changelog

3.0.0 (08.09.2023)

  • Initial release