Sign in Join
Wiki copytemporary

Using INI Files/es

Deutsch · English · Español · Français · Polski · Suomi · Русский · العربية · 中文(中国)

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 unidadINIfiles y la clase TINIFile puedes trabajar fácilmente con los archivos INI. Esta unidad forma parte de la FCL.

Archivos INI

   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]).

   En los archivos INI, se permiten los comentarios y deben estar marcados por punto y coma (;) al inicio de la línea. Como no hay un estándar definido, se permiten otros caracteres como (#).

   En estos días, los archivos INI no son tan populares como los archivos XML, debido a que no manejan muy bien grandes cadenas de texto, sin embargo, archivos similares a los INI, son usados comunmente en configuraciones Linux/Unix.

   Un ejemplo de archivo INI:

ini
 ; Comment. Beginning of INI file

 ; empty lines are ignored

 ; note that no section has been defined.
 Compiler=Delphi
 ; Key: Compiler
 ; Value: Delphi

 [General]
 ; This starts a General section
 Compiler=FreePascal
 ; Key Compiler and value FreePascal

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:

pascal
 Program Proyecto1;
 {$mode objfpc}{$H+}
 Uses
  Classes,SysUtils,INIFiles;
 Var
  INI: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.

   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


From the Free Pascal wiki, page "Using INI Files/es", as it stood on 2020-03-04 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Revision 1, last changed by WikiArchive .

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.