Difference between revisions of "Using INI Files/es"

From Free Pascal wiki
Jump to navigationJump to search
Line 51: Line 51:
  
 
===Lectura de archivos INI===
 
===Lectura de archivos INI===
Para la lectura de los valores de los archivos ini, existen funciones específicas, de acuerdo al tipo de datos: '''ReadString''', '''ReadBool''', '''ReadInteger''', '''ReadDate' o '''ReadDateTime'''.
+
Para la lectura de los valores de los archivos INI, existen funciones específicas, de acuerdo al tipo de datos: '''ReadString''', '''ReadBool''', '''ReadInteger''', '''ReadDate''' o '''ReadDateTime'''.
  
 
Cada una de estas funciones devolverá, el tipo de datos correspondiente. Así por ejemplo  'ReadBool' devolverá valores 'boolean', y 'ReadString' devolverá un string.
 
Cada una de estas funciones devolverá, el tipo de datos correspondiente. Así por ejemplo  'ReadBool' devolverá valores 'boolean', y 'ReadString' devolverá un string.
Line 57: Line 57:
 
La lectura, se hace invocando a la función necesaria, y asignando el valor a una variable:
 
La lectura, se hace invocando a la función necesaria, y asignando el valor a una variable:
  
     ''Cadena := appINI.ReadString('Nombre de Sección','Clave','valor por defecto');''
+
     ''Cadena := INIdb.ReadString('Nombre de Sección','Clave','valor por defecto');''
  
 
El último parámetro, es el valor que se debe devolver, en caso de que la clave solicitada no exista en el archivo INI.
 
El último parámetro, es el valor que se debe devolver, en caso de que la clave solicitada no exista en el archivo INI.
Line 64: Line 64:
  
 
También puede resultar conveniente verificar si una sección existe. Para ello, se debe usar la función '''SectionExists'''.
 
También puede resultar conveniente verificar si una sección existe. Para ello, se debe usar la función '''SectionExists'''.
 
  
 
===Operaciones adicionales===
 
===Operaciones adicionales===

Revision as of 23:05, 21 August 2013

العربية (ar) Deutsch (de) English (en) español (es) suomi (fi) français (fr) polski (pl) русский (ru) 中文(中国大陆)‎ (zh_CN)

Archivos INI

Información Básica

   Los archivos INI se pueden utilizar para guardar la configuración básica del usuario con facilidad. Con la unidad INIfiles y la clase TINIFile puedes trabajar fácilmente con los archivos INI. Esta unidad forma parte de la FCL.

Estructura del archivo INIs

   Los archivos INI utilizan corchetes para incluir secciones. En estas secciones se encuentran las claves y los valores de las claves.

   La clave y su valor están separados mediante el símbolo (=) .

   Los nombres de sección se escriben entre corchetes ([UnaSeccion]). Los archivos INI no son tan populares como los archivos XML, debido a que no manejan muy bien grandes cadenas de texto.

Ejemplo

   Crearemos una sencilla aplicación de consola. Lo primero que hará es crear un archivo INI y llamado DB.ini y lo pondrá en el directorio de la aplicación. Contendrá una sección llamada INIDB, y las claves y valores siguientes:

 Autor=Adam
 Contrasenya=
 ArchivoDB=Dinero.dat

   Veremos ahora el código:

 Program Proyecto1;
 {$mode objfpc}{$H+}
 Uses
  Classes,SysUtils,INIFiles;
 Var
  INIdb:TINIFile;
  Autor,Contrasenya,ArchivoDB:String;
  DameContrasenya:String;
 begin
  INI := TINIFile.Create('DB.ini');
  Autor := INI.ReadString('INIdb','Autor','');
  Contrasenya := INI.ReadString('INIdb','Contrasenya','');
  ArchivoDB := INI.ReadString('INIdb','ArchivoDB','');
  if Contrasenya <> '' then
  begin
    Writeln('Contraseña Requerida');
    Repeat
      Readln(DameContrasenya);
      if not DameContrasenya = Contrasenya then Writeln('Contraseña no válida');
    until(DameContrasenya = Contrasenya);
    Writeln('Contraseña correcta');
  end;
  Writeln('Autor : '+ Autor);
  Writeln('Archivo : '+ ArchivoDB);
  Writeln('Contraseña : '+ Contrasenya);
  Readln;
 end.

Lectura de archivos INI

Para la lectura de los valores de los archivos INI, existen funciones específicas, de acuerdo al tipo de datos: ReadString, ReadBool, ReadInteger, ReadDate o ReadDateTime.

Cada una de estas funciones devolverá, el tipo de datos correspondiente. Así por ejemplo 'ReadBool' devolverá valores 'boolean', y 'ReadString' devolverá un string.

La lectura, se hace invocando a la función necesaria, y asignando el valor a una variable:

    Cadena := INIdb.ReadString('Nombre de Sección','Clave','valor por defecto');

El último parámetro, es el valor que se debe devolver, en caso de que la clave solicitada no exista en el archivo INI.

Para leer una seción completa, se puede usar el método ReadSection. En este caso, se le debe pasar una lista de cadenas, como parámetro de salida.

También puede resultar conveniente verificar si una sección existe. Para ello, se debe usar la función SectionExists.

Operaciones adicionales

   En la clase TINIFile hay diferentes propiedades, procedimientos y funciones que se pueden utilizar.

  • CaseSensitive - Esta característica le permite determinar si las claves y secciones distinguen entre mayúsculas y minúsculas o no, por omisión no hay distinción.
  • ReadString - Tiene tres parámetros constantes, el primero es la sección en la que buscar, el segundo es la clave buscada. El tercero es una cadena con el valor por omisión en caso de no encontrar la clave o la sección buscadas.
  • WriteString tiene también tres parámetros. El primero es la sección. El segundo es la clave y el último es el valor. Si la clave y la sección que ya existen la clave será escrita con el nuevo valor.
  • ReadSections - Permite obtener las secciones del archivo INI y las deposita en una clase TStrings (o TStringList usando la cláusula AS)
  • DeleteKey - Eliminar una clave existente de una sección específica.
  • EraseSection - Elimina una sección y todos los datos que contiene.

   Hay más procedimientos y funciones, pero esto es lo básico.

Palabra finales...

Aquí [1] se puede conocer todo acerca de los archivos INI... Por favor, si tienes más información acerca de los archivos INI en Pascal. 'Modificar a voluntad.'

Ver también