¿Cómo operar archivos INI?
Los archivos INI juegan un papel importante en la configuración del sistema y el ahorro y la configuración de los parámetros de la aplicación, por lo que las familias de programación visual, como VB, VC, VFP, Delphi, etc., proporcionan métodos para leer y escribir archivos INI, donde se opera INI en Delphi. Los archivos son los más simples, porque Delphi3 proporciona una clase Tinifile, que nos permite manejar los archivos INI de manera muy flexible.
1. Es necesario comprender la estructura del archivo INI:
;Comentario
[Nombre de la sección]
Palabra clave = valor
...
El archivo INI permite múltiples secciones, y cada sección permite múltiples palabras clave, seguido del valor de la palabra clave.
Hay tres tipos de valores: cadena, valor entero y valor booleano. La cadena se almacena en el archivo INI sin cotizaciones, el verdadero valor booleano está representado por 1, y el valor booleano falso está representado por 0.
Los comentarios comienzan con un punto y coma ";".
2. Definición
1. Agregue Inifiles a la sección Usos de la interfaz;
2. Agregue una línea a la parte de definición de variable var:
myinifile: tinifile;
Luego, puede crear, abrir, leer, escribir y otras operaciones en la variable myinifile.
3. Abra el archivo INI
myinifile: = tinifile.create ('programa.ini');
La instrucción de línea anterior establecerá una conexión entre la variable Myinifile y el archivo de archivo específico.ini, y luego puede usar la variable MyInifile para leer y escribir los valores de las palabras clave en el archivo Program.ini.
Vale la pena señalar que si el nombre del archivo en los corchetes no especifica la ruta, el archivo Program.ini se almacenará en el directorio de Windows.
El método para almacenar el archivo programa.ini en el directorio actual de la aplicación es especificar la ruta completa y el nombre del archivo para ello. Las siguientes dos declaraciones pueden completar esta función:
Nombre de archivo: = ExtractFilePath (paramstr (0))+'Program.ini';
4. Lea el valor de la palabra clave
Para tres tipos de datos compatibles con archivos INI: cadena, valor entero y valor booleano, la clase Tinifiles proporciona tres métodos de objetos diferentes para leer los valores de las palabras clave en los archivos INI.
Suponga que las variables definidas vs, VI y VB son tipos de cadena, entero y booleanos respectivamente.
vs: = myInifile.ReadString ('Nombre de la sección', 'Palabra clave', valor predeterminado);
vi: = myInifile.ReadInteger ('Nombre de la subsección', 'Palabra clave', valor predeterminado);
vb: = myInifile.ReadBool ('Nombre de sección', 'Palabra clave', valor predeterminado);
El valor predeterminado es el valor predeterminado devuelto cuando la palabra clave no existe en el archivo INI.
5. Escribe en el archivo INI
Del mismo modo, la clase Tinifile también proporciona tres métodos de objetos diferentes, escritura de cadenas, números enteros y palabras clave booleanas al archivo INI.
myInifile.WriteString ('Nombre de la subsección', 'Palabra clave', Variable o Valor de cadena);
myInifile.WriteInteger ('Nombre de la subsección', 'Palabra clave', Variable o valor entero);
myinifile.writebool ('nombre de la subsección', 'palabra clave', variable o verdadera o falsa);
Cuando este archivo INI no existe, la instrucción anterior también creará automáticamente el archivo INI.
6. Eliminar palabras clave
Además de agregar una palabra clave con el método de escritura, la clase Tinifile también proporciona un método de objeto para eliminar la palabra clave:
myInifile.DeleteKey ('Nombre de la subsección', 'Palabra clave');
7. Operación de sección
Agregar una sección se puede hacer escribiendo el método y eliminar una sección se puede hacer mediante el siguiente método de objeto:
myinifile.erassection ('nombre de la subsección');
Además, la clase Tinifile también proporciona tres métodos de objetos para operar en subsecciones:
myInifile.ReadSection ('Sección Nombre' TStrings Variable)
MyInifile.ReadSections (variable tstrings);
MyInifile.ReadSectionValues ('Nombre de la sección', TStrings Variable);
8. Liberar
Libere MyInifile en la ubicación apropiada con la siguiente declaración:
myinifile.distory;
Nueve.
El siguiente utiliza un ejemplo simple (como se muestra en la figura) para demostrar el método de crear, leer y almacenar archivos INI. El archivo myini.ini contiene los "parámetros del programa" de la subsección y tres palabras clave: nombre de usuario (cadena), ya sea el usuario oficial (valor booleano) y el tiempo de ejecución (valor integral). El programa lee estos datos en la creación del formulario y escribe el archivo myini.ini cuando se lanza el formulario.
Lista de programas de origen
Unidad Unidad1;
interfaz
usos
Windows, mensajes, sysutils, clases, gráficos, controles, formularios, diálogos, IFILES, STDCTRLS, EXTCTRLS;
tipo
TForm1 = class (tForm)
Edit1: tedit;
Casilla de verificación1: tcheckbox;
Edit2: tedit;
Etiqueta1: tlabel;
Etiqueta2: tlabel;
Temporizador1: ttimer;
Label3: tlabel;
procedimiento formeFreate (remitente: tobject);
ProcedureFormDestroy (remitente: tobject);
procedimientoTimer1Timer (remitente: tobject);
Privado
{Privatedeclarations}
público
{PublicDeclarations}
fin;
varilla
Form1: tform1;
Implementación
varilla
myinifile: tinifile;
{$ R*.dfm}
procederRetForm1.FormCreate (remitente: tobject);
varilla
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 ejecutado', 0));
CheckBox1.Calked: = myInifile.ReadBool ('Parámetros del programa', 'es un usuario oficial', falso);
fin;
procederRetForm1.FormDestroy (remitente: tobject);
Comenzar
myInifile.WriteString ('Parámetros del programa', 'Nombre de usuario', edit1.Text);
myInifile.WriteInteger ('Parámetros del programa', 'Tiempo ejecutado', strToint (edit2.Text));
myInifile.Writebool ('Parámetros del programa', 'es un usuario oficial', chechbox1.ecked);
myinifile.destroy;
fin;
ProceduretForm1.Timer1Timer (remitente: tobject);
Comenzar
edit2.Text: = intToStr (strToint (edit2.Text) +1);
fin;
fin.