Sign in Join
Wiki copytemporary

Using INI Files/es: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Using INI Files/es

OldNewLine
1+## Archivos INI
2+
3+### Información Básica
4+
5+   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.
6+
7+### Archivos INI
8+
9+   Los archivos INI utilizan corchetes para incluir **secciones**. En estas secciones se encuentran las claves y los valores de las claves.
10+
11+   La clave y su valor están separados mediante el símbolo (=) .
12+
13+   Los nombres de sección se escriben entre corchetes (\[UnaSeccion\]).
14+
15+   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 (#).
16+
17+   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.
18+
19+   Un ejemplo de archivo INI:
20+
21+``` ini
22+ ; Comment. Beginning of INI file
23+
24+ ; empty lines are ignored
25+
26+ ; note that no section has been defined.
27+ Compiler=Delphi
28+ ; Key: Compiler
29+ ; Value: Delphi
30+
31+ [General]
32+ ; This starts a General section
33+ Compiler=FreePascal
34+ ; Key Compiler and value FreePascal
35+```
36+
37+### Ejemplo
38+
39+   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:
40+
41+` Autor=Adam`\
42+` Contrasenya=`\
43+` ArchivoDB=Dinero.dat`
44+
45+   Veremos ahora el código:
46+
47+``` pascal
48+ Program Proyecto1;
49+ {$mode objfpc}{$H+}
50+ Uses
51+ Classes,SysUtils,INIFiles;
52+ Var
53+ INI:TINIFile;
54+ Autor,Contrasenya,ArchivoDB:String;
55+ DameContrasenya:String;
56+ begin
57+ INI := TINIFile.Create('DB.ini');
58+ Autor := INI.ReadString('INIdb','Autor','');
59+ Contrasenya := INI.ReadString('INIdb','Contrasenya','');
60+ ArchivoDB := INI.ReadString('INIdb','ArchivoDB','');
61+ if Contrasenya <> '' then
62+ begin
63+ Writeln('Contraseña Requerida');
64+ Repeat
65+ Readln(DameContrasenya);
66+ if not DameContrasenya = Contrasenya then Writeln('Contraseña no válida');
67+ until(DameContrasenya = Contrasenya);
68+ Writeln('Contraseña correcta');
69+ end;
70+ Writeln('Autor : '+ Autor);
71+ Writeln('Archivo : '+ ArchivoDB);
72+ Writeln('Contraseña : '+ Contrasenya);
73+ Readln;
74+ end.
75+```
76+
77+### Lectura de archivos INI
78+
79+   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**.
80+
81+   Cada una de estas funciones devolverá, el tipo de datos correspondiente. Así por ejemplo 'ReadBool' devolverá valores 'boolean', y 'ReadString' devolverá un string.
82+
83+   La lectura, se hace invocando a la función necesaria, y asignando el valor a una variable:
84+
85+*`Cadena := INIdb.ReadString('Nombre de Sección','Clave','valor por defecto');`*
86+
87+   El último parámetro, es el valor que se debe devolver, en caso de que la clave solicitada no exista en el archivo INI.
88+
89+   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.
90+
91+   También puede resultar conveniente verificar si una sección existe. Para ello, se debe usar la función **SectionExists**.
92+
93+### Operaciones adicionales
94+
95+   En la clase TINIFile hay diferentes propiedades, procedimientos y funciones que se pueden utilizar.
96+
97+- **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.
98+- **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.
99+- **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.
100+- **ReadSections** - Permite obtener las secciones del archivo INI y las deposita en una clase TStrings (o TStringList usando la cláusula AS)
101+- **DeleteKey** - Eliminar una clave existente de una sección específica.
102+- **EraseSection** - Elimina una sección y todos los datos que contiene.
103+
104+   Hay más procedimientos y funciones, pero esto es lo básico.
105+
106+### Palabra finales...
107+
108+   Aquí [1](http://lazarus-ccr.sourceforge.net/docs/fcl/inifiles/index.html) 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*.'
109+
110+## Ver también
111+
112+- [[XML Tutorial/es|Tutoría XML]]
113+
114+---
115+*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](/wiki-contact).*

Back to history