elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [Source] Solución administrada para crear configuración portable en archivos INI
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Source] Solución administrada para crear configuración portable en archivos INI  (Leído 1,043 veces)
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.699



Ver Perfil
[Source] Solución administrada para crear configuración portable en archivos INI
« en: 17 Diciembre 2015, 17:49 pm »

.Net nos ofrece varias alternativas para guardar la configuración de usuario, cómo la serialización de datos, la infrastructura My.Settings, o recurrir al registro de windows, sin embargo, y al menos para mi, un archivo de inicialización (archivo.INI) sigue siendo la mejor forma para portabilizar la configuración de un software, ya que el formato es muy amistoso de cara al end-user (¿quien no sabe editar un INI?), es perfecto para desarrollar software portable y mantener la misma configuración de usuario al copiarlo de un PC a otro, así que he ideado este algoritmo en conjunción para la manipulación de archivos INI usando código administrado (un parser de cosecha propia, sin recurrir a código no administrado con las funciones de la API de Windows que leen archivos INI).

El resultado de todo esto es bastante código, un Type para representar una sección INI, otro Type para representar una llave de una sección INI, etc, pero solo es necesario copiar y pegar todo el código que he desarrollado, ya que su utilización es tan simple como lo que voy a mostrar a continuación...

Ejemplo de uso para crear un INI con una sección y un valor booleano:
Código
  1. Dim ini As New IniManager("C:\File.ini", Encoding.Default)
  2.  
  3. With ini
  4.  
  5.    .Clear()
  6.  
  7.    .Sections.Add("SectionName")
  8.    .Sections("SectionName").Keys.Add("KeyName", value:="", comment:="Commentary")
  9.    .Sections("SectionName").Keys("KeyName").Value = "True"
  10.  
  11.    .Save()
  12.  
  13. End With
  14.  
  15. Console.WriteLine(ini.ToString)



Para obtener el valor, lo hariamos así:
Código
  1. Dim setting As Boolean = CBool(ini.Sections("SectionName").Keys("KeyName").Value)

Tiene métodos de búsqueda de secciones y llaves, y demás.



IniSection, representa una sección INI:
http://pastebin.com/8mJUZ2Nb

IniKey, representa una llave INI:
http://pastebin.com/eE1ZSnFG

IniSectionCollection, representa una colección de secciones INI:
http://pastebin.com/jcFJ0yYd

IniKeyCollection, representa una colección de llaves INI:
http://pastebin.com/CLfBtB1h

IniManager, lo más importante, la class que administra de manera abstracta los Types mencionados para la manipulación de un archivo INI:
http://pastebin.com/xgy93Saq

Espero que a alguien más le sirva.

Saludos!


« Última modificación: 17 Diciembre 2015, 17:58 pm por Eleкtro » En línea


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines