INI 文件:它们是什么以及如何使用它们

最后更新: 五月9 ,2025
  • INI 文件是存储程序和应用程序设置的配置文档。
  • 它们使用包含部分、键和值的简单结构来组织信息。
  • 它们在软件配置、游戏定制和任务自动化中很常见。
  • 它们可以使用各种编程语言(例如 Pascal、PHP 和 Python)进行读取和编写。
INI 文件

欢迎加入我们的INI 文件探索之旅!如果您曾经好奇 INI 文件是什么,或者如何有效地使用它们,那么您来对地方了。这些文件看似神秘莫测,但只要掌握了正确的信息,它们就能成为计算机和软件配置领域中强大的工具。在本文中,我们将深入探讨 INI 文件的定义、工作原理以及如何充分利用它们。

INI 文件:这些缩写词是什么意思?

让我们从头开始。INI文件中的INI是什么意思?这个缩写代表“初始化”(Initialization )。INI 文件是计算机领域广泛使用的配置文件,用于存储程序和应用程序的设置和配置选项。

INI 文件包含什么?

INI 文件包含允许程序和应用程序正常运行的关键信息。这些文件可以包含各种各样的数据,例如:

  • 配置参数:决定程序如何行为的价值观。
  • 路径:有关程序运行所需文件或资源的位置的信息。
  • 用户偏好:用户选择的自定义设置。
  • 接口选项:有关用户界面设计和外观的详细信息。

INI 文件的结构是怎样的?

INI 文件具有简单但有效的结构。它们通常被分为几个部分,每个部分都有自己的一组值和设置。让我们看一个基本的例子:

[Sección 1]
Clave1=Valor1
Clave2=Valor2

[Sección 2]
Clave3=Valor3

在这个例子中,我们有两个部分,每个部分都有自己的键和值。这种结构使得组织和搜索文件中的信息变得更加容易。

INI 文件的实际作用

现在我们对 INI 文件有了基本的了解,现在是时候探索它们在现实世界中的用途以及它们如何使您受益。

软件配置

INI 文件最常见的应用之一是软件配置。许多程序使用这些文件来存储用户偏好。您是否曾经自定义过程序的选项并想知道它们保存在哪里?答案通常是 INI 文件!

游戏定制

如果您是一名视频游戏爱好者,您可能遇到过 INI 文件。这些文件用于调整游戏设置,从图形质量到控制设置。您可以通过修改这些文件来定制您的游戏体验。

任务自动化

INI 文件在自动化任务中也很有用。程序可以读取和修改这些文件以根据编程执行特定的操作。这在企业和系统管理环境中特别有用。

网络上的 INI 文件

INI 文件不仅限于桌面应用程序。在网络上,它们用于 PHP 等技术来存储配置信息。如果您从事 Web 开发工作,了解这些文件的工作原理至关重要。

如何使用 INI 文件?

现在您知道了什么是 INI 文件以及它们在哪里使用,现在是时候学习如何使用它们了。

1. 识别相关的 INI 文件

您需要做的第一件事是找到要配置的程序或应用程序的 INI 文件。它通常位于软件安装目录中。

  数据中心类型:完整指南

2.做好备份

在更改 INI 文件之前,请务必备份原始文件。如果出现问题,这将允许您恢复以前的设置。

3.打开INI文件

使用简单的文本编辑器(例如 Windows 中的记事本)打开 INI 文件。确保编辑器不会引入任何额外的格式,例如粗体或斜体。

4. 仔细编辑

对文件进行必要的更改,注意语法。 INI 文件区分大小写,因此需要准确。

5.保存更改

进行调整后,保存 INI 文件并关闭它。在执行此操作之前,请确保相关软件已关闭。

6. 测试程序

启动程序并检查更改是否生效。如果一切按预期工作,则您已成功设置 INI 文件!

其他提示

以下是充分利用 INI 文件的一些其他技巧:

  • 文件:请务必查阅程序或应用程序文档以更好地了解 INI 文件中可用的选项。
  • 评论:您可以在 INI 文件前面加上分号 (;) 符号来添加注释。这将帮助您记住每个设置的用途。
  • 经验:不要害怕尝试 INI 文件中的设置。通过尝试不同的值并观察它们如何影响程序,你可以学到很多东西。

读写 INI 文件的示例

下面的示例使用一个常见的 INI 文件 (config.ini),如下所示:

[BaseDatos]
Usuario=minombre
Password=unaClave

[Preferencias]
Fondo=Blanco
Color=Azul

1)Free Pascal 中的示例

以下是使用 Free Pascal 读取和写入 INI 文件的完整代码

program fileIni;

{$mode objfpc}{$H+}

uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Classes
  { you can add units after this }
  , Sysutils, IniFiles;

const
  ARCHIVO_CONFIG = 'config.ini';

var
  Ini: TIniFile;
  Valor: String;

begin
  { El método Create es el constructor de la clase, que recibe como parámetro
      el nombre del archivo INI.}
  Ini := TIniFile.Create(ARCHIVO_CONFIG);

  {Para leer valores se especifica el nombre de sección y clave
    en los métodos ReadString.}
  // Leer valor de sección BaseDatos
  Valor := Ini.ReadString('BaseDatos','Usuario','');
  WriteLn('Usuario BD: ', Valor);

  // Leer valor de sección Preferencias
  Valor := Ini.ReadString('Preferencias','Fondo', '');
  WriteLn('Color de fondo', Valor);

  {Para escribir valores se indica sección y clave con WriteString
    antes de guardar con UpdateFile.}
  // Escribir valor en sección BaseDatos
  Ini.WriteString('BaseDatos','Password','NuevaClave');

  // Escribir valor en sección Preferencias
  Ini.WriteString('Preferencias', 'Color', 'Verde');

  Ini.UpdateFile;
  Ini.Free;
end.

该代码是一个用 Pascal 编写的程序,可与 INI 文件一起进行配置。以下是对其功能的简要说明:

  1. 包含必要的单位:程序使用单位 Classes, SysUtils,而 IniFiles,它提供处理 INI 文件和其他资源所需的功能。
  2. 定义一个常量 ARCHIVO_CONFIG 其中包含要使用的 INI 文件的名称,在本例中为“config.ini”。
  3. 声明变量 Ini 类型 TIniFile。此变量用于与 INI 文件交互。
  4. 程序首先创建一个 TIniFile 呼叫 Ini 与建造者 Create,将 INI 文件的名称(“config.ini”)作为参数传递。
  5. 然后使用方法 ReadString de Ini 从INI文件中读取值。在这种情况下,将读取两个值:第一个来自“数据库”部分和“用户”键,第二个来自“首选项”部分和“背景”键。读取的值存储在变量中 Valor 并显示在控制台中。
  6. 然后使用方法 WriteString de Ini 将值写入INI文件。此时在“数据库”部分和“密码”键中设置了新密码,在“首选项”部分和“颜色”键中的颜色更改为“绿色”。
  7. 然后调用该方法 UpdateFile 将对 INI 文件所做的更改保存到磁盘。
  8. 最后,实例内存被释放。 Ini 打电话给 Ini.Free.

简而言之,该程序用于在特定部分中读取和写入名为“config.ini”的INI文件中的配置值,然后保存对文件所做的更改。

  什么是说明书:完整指南

2)PHP 示例

以下是使用 PHP 读取和写入 INI 文件的完整代码。在同一个脚本中包含类和用法示例,但你可以将它们分开以遵循编程最佳实践:

<?php

class ManejadorIni
{
    private $filename;
    private $contenido;

    public function __construct($filename)
    {
        if (!file_exists($filename)) {
            throw new Exception('El archivo no existe.');
        }

        $this->filename = $filename;
        $this->contenido = parse_ini_file($filename, true);

        if ($this->contenido === false) {
            throw new Exception('No se pudo analizar el archivo INI.');
        }
    }

    public function leer($seccion, $clave)
    {
        if (isset($this->contenido[$seccion]) && isset($this->contenido[$seccion][$clave])) {
            return $this->contenido[$seccion][$clave];
        }
        return '';
    }

    public function escribir($seccion, $clave, $valor)
    {
        $this->contenido[$seccion][$clave] = $valor;
    }

    public function guardar()
    {
        $texto = "; Archivo INI generado por ManejadorIni\n";
        
        foreach ($this->contenido as $sec => $cont) {
            $texto .= "\n[$sec]\n";
            
            foreach ($cont as $key => $val) {
                $texto .= "$key=$val\n";
            }
        }

        if (file_put_contents($this->filename, $texto) === false) {
            throw new Exception('No se pudo guardar el archivo INI.');
        }
    }

    public function __destruct()
    {
        $this->filename = null;
        $this->contenido = null;
    }
} // Aqui termina la Clase.


// Código para probar la Clase: ManejadorIni
try {
    // Iniciar el manejador para un archivo INI específico
    $manejador = new ManejadorIni('config.ini');

    // Leer valores
    $nombreUsuario = $manejador->leer('BaseDeDatos', 'usuario');
    if (empty($nombreUsuario)) {
        echo "No se pudo obtener el nombre de usuario desde el archivo INI.\n";
    }
    echo "Nombre de Usuario actual: " . $nombreUsuario . "<br>";

    // Escribir valores
    $manejador->escribir('BaseDeDatos', 'usuario', 'nuevoUsuario');

    // Guardar cambios al archivo
    $manejador->guardar();

} catch (Exception $e) {
    // Manejo de excepciones
    echo "Se ha encontrado un error: " . $e->getMessage();
}


?>

此 PHP 代码定义了一个名为 ManejadorIni 用于读取、修改和保存INI格式的配置文件。以下是代码的基本功能:

  1. 班级 ManejadorIni 拥有私有财产 $filename (存储 INI 文件名)和 $contenido (用于存储解析后的INI文件内容)。
  2. 在类构造函数中 ManejadorIni,检查指定的INI文件是否存在。如果不存在,则抛出异常。然后,构造函数使用函数解析 INI 文件的内容 parse_ini_file 并将结果存储在属性中 $contenido。如果解析函数失败,也会引发异常。
  3. 该类提供三种主要方法:
    • leer($seccion, $clave):允许您从 INI 文件中的某个部分和某个键中读取特定值。如果section和key存在,则返回value;否则返回空字符串。
    • escribir($seccion, $clave, $valor):允许您在 INI 文件中写入或修改给定部分和键的值。此修改在内存中完成,直到调用该方法才会保存到文件中。 guardar().
    • guardar():将内存中所做的更改保存到原始 INI 文件中。浏览存储在 $this->contenido 并将其写回 INI 文件。
  4. 方法 __destruct() 它负责在类实例被销毁时清理属性。
  5. 在类定义之外,给出了一个使用示例:
    • 已创建一个实例 ManejadorIni 对于‘config.ini’文件。
    • “用户”键的值是从 INI 文件的“数据库”部分读取的。
    • 如果值为空,则会显示错误消息。
    • 'user' 的值更改为 'newUser'。
    • 更改已保存到 INI 文件。
  ITIL 是什么?它有何用途?

代码还处理异常,因此如果在读取、写入或保存 INI 文件时发生错误,则会捕获这些错误并显示适当的错误消息,而不是导致程序中止。

注意:该 PHP 脚本未使用高级 PHP 7.x 语法,因为它试图与 PHP 5.6 和 PHP 7 兼容。

3)Python 示例

下面我们展示使用 Python 读取和写入 INI 文件 config.ini 的功能:

import configparser

# Crear un objeto ConfigParser
config = configparser.ConfigParser()

# Leer el archivo INI
config.read('config.ini')

# Leer valores del archivo INI
usuario_bd = config.get('BaseDatos', 'Usuario')
password_bd = config.get('BaseDatos', 'Password')
fondo = config.get('Preferencias', 'Fondo')
color = config.get('Preferencias', 'Color')

# Mostrar los valores leídos
print('Usuario BD:', usuario_bd)
print('Password BD:', password_bd)
print('Fondo:', fondo)
print('Color:', color)

# Escribir valores en el archivo INI
config.set('BaseDatos', 'Usuario', 'nuevo_usuario')
config.set('BaseDatos', 'Password', 'NuevaClave2')
config.set('Preferencias', 'Fondo', 'Red')
config.set('Preferencias', 'Color', 'Azul')

# Guardar los cambios en el archivo INI
with open('config.ini', 'w') as configfile:
    config.write(configfile)

Python 程序使用该库 configparser 读取和写入名为“config.ini”的 INI 文件。以下是对其功能的简要说明:

  1. 导入库 configparser 处理 INI 文件。
  2. 创建一个对象 ConfigParser 叫 config.
  3. 使用方法读取INI文件 read de config.
  4. 使用该方法读取 INI 文件中“数据库”和“首选项”部分的现有值 get。然后,将这些值显示到控制台。
  5. 使用该方法更新INI文件中的值 set。在这种情况下,请在“数据库”部分更改用户名和密码,并在“首选项”部分更改背景和颜色。
  6. 使用方法保存对 INI 文件的更改 write 以及一个名为“config.ini”的输出文件。

简而言之,该程序允许您使用库读取、修改和保存 INI 文件中的值 configparser Python。

结论

INI 文件一开始可能看起来像一个谜,但只要掌握正确的信息并经过一些练习,您就会成为使用它们的专家。这些简单的配置文档在定制软件、优化游戏和自动化任务方面发挥着至关重要的作用。所以不要害怕进入 INI 文件的世界,今天就开始利用它们的潜力!

需要注意的是,还有其他类型的配置文件,称为 XML 文件,它们广泛应用于计算机领域,例如数据库、信息交换和应用程序配置。XML 是一种可扩展的标记语言,它允许以人机均可读取的格式对数据进行结构化和存储。与传统的纯文本配置文件不同,XML 格式使用标签和属性来定义文档的结构。

如果您发现本 INI 文件指南有用,请随时与其他计算机和技术爱好者分享。我们可以共同简化 INI 文件的难题,并使每个人都可以访问它们。分享知识并帮助其他人掌握这个强大的配置工具!