From Wikipedia, the free encyclopedia
An initialization file, or INI file, is a configuration file that contains configuration data for Microsoft Windows based applications. Starting with Windows 95, the INI file format was superseded but not entirely replaced by a registry database in Microsoft operating systems. Recently, XML became the standard of choice for encoding configuration, as well as other kinds of data for many applications, but INI format is still in use, largely due to its simplicity.
Although made popular by Windows, INI files can be used on any system thanks to their flexibility. They allow a program to store configuration data, which can then be easily parsed and changed.
A typical INI file might look like this:
[section1]; some comment on section1var1 = abcvar2 = 451 [section2]; another commentvar1 = 123var2 = dfg
This describes the elements of the INI file format:
- Sections: Section declarations start with '[' and end with ']' as in [section1] and [section2] above. And sections start with section declarations.
- Parameters: The "var1 = abc" above is an example of a parameter (also known as an item). Parameters are made up of a key ('var1'), equals sign ('='), and a value ('abc').
- Comments: All the lines starting with a semicolon (';') are assumed to be comments, and are ignored.
The format of INI files is not well defined. Many programs interpret their structure differently than the basic structure that was defined in the above example. The following is a basic list of some of the differences:
- Quoted values: The Microsoft Windows implementation (see: GetPrivateProfileString in MSDN) will remove quotation marks (apostrophes, backquotes and double-quotes) that surround INI file values.
- Comments: Programs like Samba accept either ';' or '#' as comments. Comments can be added after parameters with several formats.
- Backslashes: Adding a backslash '\' allows you to continue the value from one line to another. Some formats also allow various escapes with a '\', such as '\n' for newline.
- Duplicate parameters: Most of the time, you can't have two parameters with the same name in one section. Therefore one can say that parameters are local to the section. Although this behavior can vary between implementations, it is advisable to stick with this rule.
- Duplicate sections: If you have more than one section with the same name then the last section overrides the previous one. (Some implementations will merge them if they have different keys.)
- Some implementations allow ":" in place of "=".
Since there is no real standard detailed specification, the following is a list of links to unofficial ones:
- INI grammar LL(1) grammar used by aini2plist, an INI file to plist converter
The following is a listing of programming libraries for INI files:
- GetPot: Configuration File Parser. Providing also a simple LISP-like language for substitution, concatination, and numerical operations inside INI-Files.
- ini4j: Open Source Java Ini File Reader
- ConfigObj: A pure Python module for reading and writing INI files, with an extended syntax for nested sections
- Nini: Configuration library for the Microsoft .NET Framework and Mono development platform.
- SimpleIni: C++ INI configuration file library. Provides easy cross-platform (Windows/Linux/Unix) read and write access to INI configuration files. Fully Unicode/MBCS/UTF-8 aware on all platforms.
- iniParser: stand-alone INI parser library in ANSI C
- LeoINI: C++ INI parser
- ConfigParser: Python's standard INI parsing module.
- Config::IniFiles: Perl INI parser
- inifile : Tcl INI file library
- parse-ini-file : PHP INI parser
- SDL_Config : C/C++ INI parser, connected with SDL
- program_options : C++ - Boost's toolkit for processing configuration data given on command line, in files and other sources, from Vladimir Prus.
- inifile - INI configuration file command line editor for use with Windows and MS-DOS batch files.
- IniFile : Open source Java INI file reader and writer
Categories: Computer data | Configuration files