mirror of
https://github.com/chibicitiberiu/rainmeter-studio.git
synced 2024-02-24 04:33:31 +00:00
57 lines
2.2 KiB
Markdown
57 lines
2.2 KiB
Markdown
|
# INI File Parser
|
|||
|
|
|||
|
A Mono-compatible .NET library for reading/writing INI data from IO streams, file streams, and strings.
|
|||
|
|
|||
|
[![Build Status](https://travis-ci.org/rickyah/ini-parser.png?branch=master)](https://travis-ci.org/rickyah/ini-parser)
|
|||
|
|
|||
|
## Installation
|
|||
|
|
|||
|
The library is published to [NuGet](https://www.nuget.org/packages/ini-parser/) and can be installed on the command-line from the directory containing your solution.
|
|||
|
|
|||
|
```bat
|
|||
|
> nuget install ini-parser
|
|||
|
```
|
|||
|
|
|||
|
Or, from the [Package Manager Console](http://docs.nuget.org/docs/start-here/using-the-package-manager-console) in Visual Studio
|
|||
|
|
|||
|
```powershell
|
|||
|
PM> Install-Package ini-parser
|
|||
|
```
|
|||
|
|
|||
|
Or from the [NuGet Package Manager](http://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c) extension built available for most flavors of Visual Studio!
|
|||
|
|
|||
|
## Getting Started
|
|||
|
|
|||
|
INI data is stored in nested dictionaries, so accessing the value associated to a key in a section is straightforward. Load the data using one of the provided methods.
|
|||
|
|
|||
|
```csharp
|
|||
|
var data = parser.ReadFile("Configuration.ini");
|
|||
|
```
|
|||
|
|
|||
|
Retrieve the value for a key inside of a named section. Values are always retrieved as `string`s.
|
|||
|
|
|||
|
```csharp
|
|||
|
var useFullScreen = data["UI"]["fullscreen"];
|
|||
|
```
|
|||
|
|
|||
|
Modify the value in the dictionary, not the value retrieved, and save to a new file or overwrite.
|
|||
|
|
|||
|
```csharp
|
|||
|
data["UI"]["fullscreen"] = "true";
|
|||
|
parser.WriteFile("Configuration.ini", data);
|
|||
|
```
|
|||
|
|
|||
|
See the [wiki](https://github.com/rickyah/ini-parser/wiki) for more usage examples.
|
|||
|
|
|||
|
## Contributing
|
|||
|
|
|||
|
Do you have an idea to improve this library, or did you happen to run into a bug. Please share your idea or the bug you found in the issues page, or even better: feel free to fork and [contribute](https://github.com/rickyah/ini-parser/wiki/Contributing) to this project!
|
|||
|
|
|||
|
## Version 2.0!
|
|||
|
Since the INI format isn't really a "standard", this version introduces a simpler way to customize INI parsing:
|
|||
|
|
|||
|
* Pass a configuration object to an `IniParser`, specifying the behaviour of the parser. A default implementation is used if none is provided.
|
|||
|
|
|||
|
* Derive from `IniDataParser` and override the fine-grained parsing methods.
|
|||
|
|