Los archivos INI desempeñan un papel muy importante en la configuración del sistema y en el guardado y configuración de los parámetros de la aplicación. Por lo tanto, la familia de programación visual, como VB, VC, VFP, Delphi, etc., proporciona métodos para leer y escribir archivos INI. se opera en archivos Delphi, el más conciso, esto se debe a que Delphi proporciona una clase TInifile, que nos permite procesar archivos INI de manera muy flexible . estructura del archivo INI [Nombre de la sección] palabra clave del archivo ini 1 = valor 1 Palabra clave 2 = valor 2 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, enteros y 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.
2. Definición
1. Agregue IniFiles en la sección Usos de la Interfaz;
2. Agregue una línea en la sección de definición de variable Var: myinifile:Tinifile;
Define una instancia de la clase. 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 dos declaraciones siguientes pueden completar esta función: Filename:=ExtractFilePath(Paramstr(0))+program.ini;myinifile:=Tinifile.Create(filename);
5. Escribir archivo INI
De manera similar, la clase TInifile también proporciona tres métodos de objeto diferentes para escribir cadenas, números enteros y palabras clave de tipo 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 la 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); todos los nombres clave en la sección especificada se pueden leer en una variable de lista de cadenas; ; puede leer todos los nombres de las secciones del archivo INI en una variable de lista de cadenas. myinifile.readsectionvalues (nombre de la 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 apropiada usando la siguiente declaración:
miinifile.distory;
A continuación se muestran ejemplos específicos. El código fuente es el siguiente. Se creó un archivo myini.ini, con una sección denominada newini y tres palabras clave: "nombre de usuario", "tiempo de ejecución transcurrido" y "si es un usuario oficial". Para el efecto de ejecución, puede completar el "nombre de usuario" en editar1; editar2 muestra la hora y el valor no se puede cambiar; la casilla de verificación1 guarda la hora y el "nombre de usuario" marcándolo en el archivo myini.ini. Cuando se vuelve a abrir la aplicación, si el tiempo guardado y el "nombre de usuario" completado se modifican en el archivo myini.ini, el efecto será el mismo que cuando se modifica mientras el programa se está ejecutando.
unidad Unidad1; interfaz utiliza Windows, Mensajes, SysUtils, Variantes, Clases, Gráficos, Controles, Formularios, Diálogos, archivos ini, StdCtrls, ExtCtrls {llamar clase inifiles} tipo TForm1 = clase (TForm) Etiqueta1: TLabel2: TLabel3; TLabel; Editar1: TEditar; Editar2: TEditar; Temporizador1: TTimer; CheckBox1: TCheckBox; procedimiento FormCreate(Remitente: TObject); procedimiento FormDestroy(Remitente: TObject); procedimiento Timer1Timer(Remitente: TObject); privado {Declaraciones privadas} público {Declaraciones públicas} fin;var Form1: TForm1;implementationvarmyinifile:TInifile;{ Definir una instancia de un procedimiento class}{$R *.dfm} TForm1.FormCreate(Remitente: TObject);varfilename:string;begin{Las dos líneas siguientes están escritas en forma de creación de un archivo ini en la ruta de la aplicación}filename:=ExtractFilePath(paramstr(0))+'myini.ini';myinifile:= TInifile.Create(nombre de archivo);edit1.Text:=myinifile.ReadString(' newini','Nombre de usuario','Hu Changhao');edit2.text:=inttostr(myinifile.readinteger('newini','Tiempo de ejecución transcurrido',0));checkbox1.Checked:=myinifile.readbool('newini ','¿Es un usuario oficial?',False);{newini es el nombre de la sección, el campo del medio es el nombre de la palabra clave y el tercer campo es el valor predeterminado. Cuando myini.ini no existe, la declaración anterior crea automáticamente este archivo. Las comillas en las líneas anteriores son comillas simples}end;procedure TForm1.FormDestroy(Sender: TObject);begin. myinifile.writestring('newini','nombre de usuario',edit1.Text);myinifile.writeinteger('newini','Tiempo de ejecución transcurrido',strtoint(edit2.text));myinifile.writebool('newini','si Usuario oficial',casilla1.Marcada);myinifile.Destroy;fin;procedimiento TForm1.Timer1Timer(Remitente: TObject);comenzar edit2.Text:=inttostr(strtoint(edit2.text)+1);end;end.
archivo ini