Embarcadero

Autor Tema: Tutorial (como usar un archivo INI) Novatos  (Leído 7110 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Conectado Caral

  • Administrador
  • ******
  • Panel de agradecimientos
  • -Tu has dado: 224
  • -Tu has recibido: 321
  • Mensajes: 3,547
  • Calificaciones: +369/-4
  • Sexo: Masculino
  • Siempre Novato
Tutorial (como usar un archivo INI) Novatos
« Topic Start: 13 de septiembre de 2011, 21:26:49 »
Hola
Con este pequeño Tutorial lo que pretendo es mostrar los conceptos básicos para el manejo de un archivo .ini.
En este veremos como crearlo, escribir en el y obtener la información escrita.
En la segunda parte veremos como usarlo para conectar una base de datos (access y Firebird).
Para empezar, según lo que entiendo, un archivo ini contiene la información por sectores (me podéis corregir   ).
Esta información se puede colocar de diferentes formas, la que conozco es:
Un sector principal y datos internos dentro de este.
No me hagáis mucho caso, es mejor ver como funciona, así lo entenderéis mejor.


En el primer ejemplo lo que vamos a hacer es aprender a:  crear un archivo INI
Para eso vamos a crear un nuevo proyecto y en el form creado, en el evento Oncreate vamos a poner:
Código DELPHI
  1. procedure TForm1.FormCreate(Sender: TObject);
  2. Var
  3. MiArchivoINI : TiniFile; // crea una variable de tipo TIniFile
  4. Begin
  5. // Crea el archivo INI en la direccion del programa
  6. MiArchivoINI  := TIniFile.Create(ExtractFilePath(Application.ExeName)+'MiArchivo.ini');
  7. // Escribe dentro del archivo creado
  8. MiArchivoINI.WriteString( '1', 'A', '' );
  9. end;
  10.  
Tened en cuenta que hay que colocar en el uses el tipo Tinifile, asi:

Código DELPHI
  1. uses
  2.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  3.   Dialogs, IniFiles;

Guardad el proyecto.
Si ejecutáis el programa veréis que en la carpeta en donde lo guardasteis se creara un archivo ini con el nombre MiArchivo.
Si lo abren veréis dentro de el algo así:





Creo que esta parte no necesita mucha explicación, si queréis aportar, con gusto. 
Seguimos........
Saludos
« Última Modificación: 14 de septiembre de 2011, 13:24:20 por Caral »

Siga a los miembros que agradecieron este mensaje:


Comunidad Delphiaccess

Tutorial (como usar un archivo INI) Novatos
« : 13 de septiembre de 2011, 21:26:49 »

Conectado Caral

  • Administrador
  • ******
  • Panel de agradecimientos
  • -Tu has dado: 224
  • -Tu has recibido: 321
  • Mensajes: 3,547
  • Calificaciones: +369/-4
  • Sexo: Masculino
  • Siempre Novato
Re: Tutorial (como usar un archivo INI) Novatos
« Respuesta #1: 13 de septiembre de 2011, 21:30:31 »
  Bien, Seguimos:


En este segundo ejemplo veremos como se escribe dentro de un archivo INI y como podemos obtener esa información.
Primero creemos un nuevo proyecto:
Flile New Application.
En el form creado vamos a poner:
2 Panel
3 botones
1 Combobox
1 memo
2 edit
3 label


Nos quedara asi:



Como veis se hicieron estos cambios:
Al primer panel cambiadle el caption por: Datos de la persona
Al segundo panel dejad el caption en blanco
Los edits dejadlos en blanco en la propiedad TEXT.
En el combobox en la propiedad string poned:
Nombre
Apellido
DNI

Los Label serian: Código, Tipo, Dato.
Los botones:
Guardar los datos
Ver los datos según el código
Salir
Cambiemos le el caption del form a: Datos en Archivo INI.
Guardemos el proyecto.


Seguimos con código..........
Saludos

Conectado Caral

  • Administrador
  • ******
  • Panel de agradecimientos
  • -Tu has dado: 224
  • -Tu has recibido: 321
  • Mensajes: 3,547
  • Calificaciones: +369/-4
  • Sexo: Masculino
  • Siempre Novato
Re: Tutorial (como usar un archivo INI) Novatos
« Respuesta #2: 13 de septiembre de 2011, 21:57:01 »
Seguimos:
Vamos a escribir el código que nos servirá para este ejemplo:
Primero el mas sencillo:
El boton Salir:
Dadle doble click y poned esto:
Código DELPHI
  1. Close;
El botón Guardar los datos:
Aquí vamos a crear algunas variables que nos servirán para almacenar los datos.
Este es el código:
Código DELPHI
  1. var
  2. B: TIniFile; // contiene el dato de tipo TIniFile
  3. Codigo: String;
  4. Tipo: String;
  5. Dato: String;
  6. begin
  7.   Codigo:= Edit1.Text;  //Obtiene el dato del edit1
  8.   Tipo:= ComboBox1.Text;  //Obtiene el dato del combobox1
  9.   Dato:= Edit2.Text; //Obtiene el dato del edit2
  10.   B := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'MiArchivo.Ini'); // busca el archivo INI en el directorio del programa
  11.   with B do
  12.   begin
  13.   B.WriteString(Codigo,Tipo,Dato); // Escribe los datos en el archivo ini
  14.   Showmessage('Dato Guardado'); // muestra un mensaje
  15.  
Ahora el botón: Ver los datos Según el código:
Crearemos las variable para almacenar los datos:
Código DELPHI
  1. var
  2. BF: TIniFile;
  3. Codigo: String;
  4. A, B, C: String;
  5. begin
  6.   Codigo:= Edit1.Text;
  7.   BF := TIniFile.Create(ExtractFilePath(ParamStr(0)) +'MiArchivo.Ini');
  8.   with BF do
  9.   begin
  10.   A := BF.ReadString(Codigo,'Nombre','');
  11.   B := BF.ReadString(Codigo,'Apellido','');
  12.   C := BF.ReadString(Codigo,'DNI','');
  13.   Memo1.Clear;
  14.   Memo1.Lines.Add('Nombre  = '+A);
  15.   Memo1.Lines.Add('Apellido = '+B);
  16.   Memo1.Lines.Add('DNI       = '+C);
  17.   end;
  18.  
Como veis en este segundo botón se busca el archivo ini, se leen los datos con la función   ReadString y se muestran en el memo.


Acordaros que hay que declarar en tipo TInifile en el uses:
Código DELPHI
  1. uses
  2.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  3.   Dialogs, IniFiles;  



Corred el programa y empezad a jugar con datos, veréis que los guarda y los recupera según el dato que se escriba en el edit1 el cual sera el código de referencia.
Si tenéis alguna duda ya sabéis, para eso estamos..


Seguiré con la parte de conexión a las Bases de datos.
Saludos
« Última Modificación: 14 de septiembre de 2011, 13:27:12 por Caral »

Conectado Caral

  • Administrador
  • ******
  • Panel de agradecimientos
  • -Tu has dado: 224
  • -Tu has recibido: 321
  • Mensajes: 3,547
  • Calificaciones: +369/-4
  • Sexo: Masculino
  • Siempre Novato
Re: Tutorial (como usar un archivo INI) Novatos
« Respuesta #3: 13 de septiembre de 2011, 22:16:59 »
Seguimos...

Como visteis anteriormente un archivo INI lee la información en un sector especifico dentro de el.
Esto es lo que usaremos para poder conectar una BD por medio de un archivo INI.
Una cosa a tomar en cuenta es que aunque los datos son del tipo Texto se puede usar con datos numéricos, eso tal vez lo veamos en otra ocasión por ahora nos enfocaremos al enlace con las BD.
Sabemos, según lo que pudimos ver que el dato de tipo ''control'' se encuentra encerrado dentro de corchetes [ ] y que los datos contenidos dentro del principal se definen con un signo de igual =.
En el caso de la conexión con una BD se puede desde colocar todos los datos necesarios, los básicos, las claves etc. etc. etc..
Lo normal es colocar solamente la dirección donde se encuentra la BD.
Aveces se necesita colocar la clave y el usuario, por lo menos yo lo prefiero en el caso de Firebird.
En el siguiente paso os mostrare tanto el código para access como para Firebird, como veréis serán prácticamente lo mismo con ligeras diferencias.
Seguimos.....
Saludos
 
« Última Modificación: 14 de septiembre de 2011, 09:59:56 por enecumene »

Conectado Caral

  • Administrador
  • ******
  • Panel de agradecimientos
  • -Tu has dado: 224
  • -Tu has recibido: 321
  • Mensajes: 3,547
  • Calificaciones: +369/-4
  • Sexo: Masculino
  • Siempre Novato
Re: Tutorial (como usar un archivo INI) Novatos
« Respuesta #4: 13 de septiembre de 2011, 22:43:22 »
Seguimos....
Conectarnos a una BD access por medio de un archivo INI.
Bien, en este caso usaremos los componentes ADO.
Este código lo podemos colocar en un form o en un datamodule (que es lo mas eficiente), siempre dentro del evento OnCreate.
Hay que recordar que en el uses del from hay que poner el uses IniFiles, en el caso de un datamodule:
Código DELPHI
  1. uses
  2.   SysUtils, Classes, DB, ADODB, IniFiles, Forms, Dialogs;
Colocad este código (en el evento Oncreate):
Código DELPHI
  1. Var
  2. BaseDeDatos, ConStr : String;
  3.     IniFile: TIniFile;
  4. begin
  5.    // Obtiene la ruta y el nombre de la base de datos
  6.    IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'MiArchivo.ini');
  7.    BasedeDatos := IniFile.ReadString('BD','Path','');
  8.     If BasedeDatos = '' then ShowMessage('Error al cargar Base de Datos');
  9.    ConStr := 'Provider=Microsoft.Jet.OLEDB.4.0;'+
  10.              'Data Source='+BaseDeDatos+';'+
  11.              'Persist Security Info=False;'+
  12.              'Jet OLEDB:Database Password=admin';
  13.      AdoConnection1.ConnectionString := ConStr;
  14.      AdoConnection1.Open;
  15.  
Como veis el sector principal se llama BD este estará encerrado entre corchetes y el dato se sacara del sector Path que es donde se escribirá la dirección de la BD.
Bien, abrid el archivo INI y poned los datos para que sean leídos por el programa, tendrán que quedar de esta forma:
Cita
[BD]
Path="C:\MICarpeta\Micarpetadebd\MiBD.MDB"
Si colocáis en el sector Path la dirección de la carpeta donde esta la BD y el nombre de la BD entonces el programa la buscara y enlazara conectándola.


Bien, si tenéis dudas, preguntad.. (y)
Seguimos con la conexión a Firebird.....
Saludos




Conectado Caral

  • Administrador
  • ******
  • Panel de agradecimientos
  • -Tu has dado: 224
  • -Tu has recibido: 321
  • Mensajes: 3,547
  • Calificaciones: +369/-4
  • Sexo: Masculino
  • Siempre Novato
Re: Tutorial (como usar un archivo INI) Novatos
« Respuesta #5: 13 de septiembre de 2011, 23:06:52 »
Seguimos...
Conectarnos a Firebird..
Para esto usaremos los componentes IBX.
Igual que en ejemplo anterior pondremos este código en el evento OnCreate:
Código DELPHI
  1. Var BaseDeDatos, User, Pass : String;
  2.     IniFile: TIniFile;
  3.  
  4. begin
  5.    IBDatabase1.Connected:= False;
  6.    IBTransaction1.Active:= False;
  7.    // Obtiene la ruta y el nombre de la base de datos
  8.   IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'MiArchivo.ini');
  9.    BasedeDatos := IniFile.ReadString('BD','Path','');
  10.    User:= IniFile.ReadString('US','Name','');
  11.    Pass:= IniFile.ReadString('PS','Clave','');
  12.    If BasedeDatos = '' then ShowMessage('Error al cargar Base de Datos');
  13.    IBDatabase1.DatabaseName:= BasedeDatos;
  14.    IBDatabase1.Params.Clear;
  15.    IBDatabase1.Params.Add('user_name='+User);
  16.    IBDatabase1.Params.Add('password='+Pass);
  17.    IBDatabase1.Params.Add('sql_role_name=3');
  18.    IBDatabase1.Connected:= True;
  19.    IBTransaction1.Active:= True;
Como veis:
Sector BD, dato Path
Sector US, Dato Name
Sector PS, dato Clave.
Ahora en archivo INI:
Cita
[BD]
Path="localhost:C:\MiCarpeta\MiCarpetadeBD\MiBD.FDB"
[US]
Name="SYSDBA"
[PS]
Clave="masterkey"
En el caso de Firebird se puede poner la dirección IP.
Como siempre, si tenéis alguna duda, preguntad... (y)
Espero os sirvan estos sencillos ejemplos.
Saludos

Siga a los miembros que agradecieron este mensaje:


Desconectado Nikolas

  • Usuario Activo
  • ***
  • Panel de agradecimientos
  • -Tu has dado: 43
  • -Tu has recibido: 12
  • Mensajes: 207
  • Calificaciones: +12/-0
  • Sexo: Masculino
Re: Tutorial (como usar un archivo INI) Novatos
« Respuesta #6: 04 de junio de 2014, 14:28:42 »
gracias por la info.  (y)

Desconectado giulichajari

  • Usuario Activo
  • ***
  • Panel de agradecimientos
  • -Tu has dado: 0
  • -Tu has recibido: 1
  • Mensajes: 53
  • Calificaciones: +1/-0
  • Sexo: Masculino
Re: Tutorial (como usar un archivo INI) Novatos
« Respuesta #7: 20 de julio de 2014, 07:26:39 »
El archivo .ini podria ser creado manualmente como un archivo de texto .txt por ejemplo y ser modificado manualmente, para que cuando una aplicacion se inicie, tome parametros?

Por ejemplo estoy desarrollando una aplicacion que se conecta a un webservice, y dentro de cada sucursal se coencta a otro(es uno por sucursal por si se corta internet), que por defecto tendran una ip y nombre de base de datos por ej.

Yo podria para poner en marcha el sistema crear un archivo ini y codificar la comprobacion del  mismo durante la inicializacion del programa, y que el ini contenga el nombre de la sucursal, el ip del servicio local y el ip del servicio global,etc y muchos otros datos.

Es verdad que los .ini son archivos txt de texto plano?

Saludos

Desconectado Delphius

  • Administrador
  • ******
  • Panel de agradecimientos
  • -Tu has dado: 221
  • -Tu has recibido: 338
  • Mensajes: 4,447
  • Calificaciones: +382/-2
  • Sexo: Masculino
  • ¿El polimorfismo seguirá siendo parte de mi vida?
Re: Tutorial (como usar un archivo INI) Novatos
« Respuesta #8: 20 de julio de 2014, 08:37:36 »
El archivo .ini podria ser creado manualmente como un archivo de texto .txt por ejemplo y ser modificado manualmente, para que cuando una aplicacion se inicie, tome parametros?

Por ejemplo estoy desarrollando una aplicacion que se conecta a un webservice, y dentro de cada sucursal se coencta a otro(es uno por sucursal por si se corta internet), que por defecto tendran una ip y nombre de base de datos por ej.

Yo podria para poner en marcha el sistema crear un archivo ini y codificar la comprobacion del  mismo durante la inicializacion del programa, y que el ini contenga el nombre de la sucursal, el ip del servicio local y el ip del servicio global,etc y muchos otros datos.

Es verdad que los .ini son archivos txt de texto plano?

Saludos
Si, puedes crear un .ini con el simple y práctico Bloc de Notas por ejemplo. Solamente debes asegurarte de que al guardarlo le indiques la extensión .ini. Un archivo ini contiene una estructura como ésta:

[NOMBRE_SECCION1]
Variable1=valor
Variable2=Valor
...
VariableN=valor

[NOMBRE_SECCION2]
...

La sección permite agrupar las variables bajo una "categoría". Cada Variable viene acompañada de un valor que es el que se lee para la aplicación. Un ejemplo clásico:

[DB]
User=SYSDBA
Pass=masterkey
DatabaseName=MiBaseDatos.FDB
Path=C:/Program File/MiApp/DB/

Espero que se entienda.
Ahora en lo sucesivo, por favor evita postear tus dudas en los tutoriales y manuales. Si tienes una duda respecto a uno en particular inicia un hilo y comenta sobre que tutorial y manual tienes problemas. Esto está redactado en nuetras Sugerencias y Recomendaciones al postear que junto a las Normas hacen ayudan a mantener la casa en orden.
Muchas gracias.

Saludos,
Como redactar mensajes - Uso de etiquetas

Se enseña por amor a los demás, se aprende por amor a la verdad
Cuanto más se busca la verdad, sin llegar a la perfección, anhelamos saber lo que falta

San Agustín