1. Es necesario comprender la estructura del archivo INI:
;comentario
[nombre de la sección]
palabra clave = valor
...
Los archivos INI permiten múltiples secciones y cada sección permite múltiples palabras clave "=" va seguida del valor de la palabra clave.
Hay tres tipos de valores: cadenas, valores enteros y valores booleanos. La cadena se almacena en el archivo INI sin comillas, el valor booleano verdadero está representado por 1 y el valor booleano falso está representado por 0.
Los comentarios comienzan con punto y coma ";".
2. Definición
1. Agregue IniFiles en la sección Usos de la Interfaz;
2. Agregue una línea a la sección de definición de variable Var:
miinifile:Tinifile;
Luego, puede crear, abrir, leer, escribir y otras operaciones en la variable myinifile.
3. Abra el archivo INI
myinifile:=Tinifile.create('program.ini');
La línea de declaración anterior establecerá una conexión entre la variable myinifile y el archivo específico program.ini. Luego, el valor de las palabras clave en el archivo program.ini se puede leer y escribir a través de la variable myinifile.
Vale la pena señalar que si el nombre del archivo entre paréntesis no especifica una ruta, entonces el archivo Program.ini se almacenará en el directorio de Windows. El método para almacenar el archivo Program.ini en el directorio actual de la aplicación es especificar. una ruta completa y un nombre de archivo. Las siguientes dos declaraciones pueden cumplir esta función.
capaz:
Nombre de archivo:=ExtractFilePath(Paramstr(0))+'program.ini';
myinifile:=Tinifile.Create(nombre de archivo);
4. Lea el valor de la palabra clave.
Para los tres tipos de datos de cadenas, valores enteros y valores booleanos admitidos por los archivos INI, la clase TINIfiles proporciona tres métodos de objetos diferentes para leer los valores de las palabras clave en los archivos INI.
Supongamos que las variables definidas vs, vi y vb son de tipo cadena, entero y booleano respectivamente.
vs:=myinifile.Readstring('nombre de sección','palabra clave',valor predeterminado);
vi:=myinifile.Readinteger('nombre de sección','palabra clave',valor predeterminado);
vb:=myinifile.Readbool('nombre de sección','palabra clave',valor predeterminado);
El valor predeterminado es el valor predeterminado que se devuelve cuando la palabra clave no existe en el archivo INI.
5. Escriba el archivo INI
De manera similar, la clase TInifile también proporciona tres métodos de objeto diferentes para escribir palabras clave de tipo cadena, entero y booleano en el archivo INI.
myinifile.writestring('nombre de sección', 'palabra clave', variable o valor de cadena);
myinifile.writeinteger('nombre de sección', 'palabra clave', variable o valor entero);
myinifile.writebool('nombre de sección', 'palabra clave', variable o Verdadero o Falso);
Cuando el archivo INI no existe, la declaración anterior creará automáticamente el archivo INI.
6. Eliminar palabras clave
Además de agregar una palabra clave usando el método de escritura, la clase Tinifile también proporciona un método de objeto para eliminar palabras clave:
myinifile.DeleteKey('nombre de sección','palabra clave');
7. Operación de la sección
Se puede agregar una sección con el método de escritura y eliminar una sección con el siguiente método de objeto:
myinifile.EraseSection('nombre de la sección');
Además, la clase Tinifile también proporciona tres métodos de objeto para operar en secciones:
myinifile.readsection('nombre de sección', variable TStrings puede leer todos los nombres de palabras clave en la sección especificada en una variable de lista de cadenas);
myinifile.readsections(variable TStrings); puede leer todos los nombres de las secciones del archivo INI en una variable de lista de cadenas.
myinifile.readsectionvalues('nombre de sección', variable TStrings puede leer todas las líneas (incluidas las palabras clave, =, valores) de la sección especificada en el archivo INI en una variable de lista de cadenas.
8. Liberación
Libere myinifile en la ubicación adecuada con la siguiente declaración:
miinifile.distory;
9. Un ejemplo
A continuación se utiliza un ejemplo simple (como se muestra en la figura) para demostrar el método de creación, lectura y almacenamiento de archivos INI. El archivo myini.ini contiene la sección "Parámetros del programa" y tres palabras clave: nombre de usuario (cadena), estado oficial del usuario (valor booleano) y tiempo transcurrido (valor entero). El programa lee estos datos cuando se crea el formulario y escribe el archivo myini.ini cuando se publica el formulario.
Lista de programas fuente adjuntos
unidadUnidad1;
interfaz
usos
Windows, Mensajes, SysUtils, Variantes, Clases, Gráficos, Controles, Formularios,
Diálogos, archivos Ini, StdCtrls, ExtCtrls;
tipo
TForm1=clase(TForm)
Editar1:TEditar;
Editar2: TEditar;
Casilla de verificación1:TCcheckBox;
Temporizador1:TTemporizador;
procedimientoFormCreate(Remitente:TObject);
procedimientoFormDestroy(Remitente:TObject);
procedimientoTimer1Timer(Remitente:TObject);
privado
{Declaraciones privadas}
público
{Declaraciones públicas}
fin;
var
Formulario1:TForm1;
miinifile:Tinifile;
implementación
{$R*.dfm}
procedimientoTForm1.FormCreate(Remitente:TObject);
var
nombre de archivo:cadena;
comenzar
nombre de archivo:=ExtractFilePath(paramstr(0))+´myini.ini´;
myinifile:=TInifile.Create(nombre de archivo);
edit1.Text:=myinifile.readstring(´parámetros del programa´,´nombre de usuario´,´nombre de usuario predeterminado´);
edit2.text:=inttostr(myinifile.readinteger(´parámetros del programa´,´tiempo de ejecución transcurrido´,0));
checkbox1.Checked:=myinifile.readbool(´parámetros del programa´,´si es un usuario oficial´,Falso);
fin;
procedimientoTForm1.FormDestroy(Remitente:TObject);
comenzar
myinifile.writestring(´parámetros del programa´,´nombre de usuario´,edit1.Text);
myinifile.writeinteger(´parámetros del programa´,´tiempo de ejecución transcurrido´,strtoint(edit2.text));
myinifile.writebool(´Parámetros del programa´, ´¿Es un usuario oficial?, casilla de verificación 1. Marcada);
myinifile.Destroy;
fin;
procedimientoTForm1.Timer1Timer(Remitente:TObject);
comenzar
edit2.Text:=inttostr(strtoint(edit2.text)+1);
fin;
fin.
Este ejemplo pasó la depuración en Delphi6.0+WinXP.