C# Leggere un file INI

lug 16th, 2009 | Filed under .NET, C#, Snippet

Link sponsorizzati

Ho trovato questa classe per leggere file INI in C# in maniera semplice e veloce. Ecco qui un esempio dell’utilizzo della stessa.

Supponiamo di avere un file INI del genere

Link sponsorizzati

[impostazioni]
Percorso=D:
Colore=Ciano

[altro]
user=one
pass=two

Questo esempio mostra come leggere e/o modificare il file cambindo le impostazioni:

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Collections;

namespace ProvaINI
{
    class Program
    {
        static void Main(string[] args)
        {
            DirectoryInfo di = new DirectoryInfo(".");
            Console.WriteLine(di.FullName);
            ManagementINI mINI = new ManagementINI(di.FullName + "myIni.INI");
            /* In questo caso io ho messo il file all'interno della stessa directory
    * dell'eseguibile, in ogni modo puoi usare direttamente il percorso del
    * file come ad esempio così
    * ManagementINI mINI = new ManagementINI(@"C:myIni.INI");
    * o mettendo il percorso che vuoi tu
    */


            #region Con questa parte di codice leggo tutto il file INI

            Console.WriteLine("Tutto il file INI: ");
            ArrayList mArray = mINI.ReadAllSection(); //legge tutte le sezioni del file INI
            foreach (string section in mArray)
            {
                Console.WriteLine("["+section+"]");
                ArrayList Key = mINI.ReadSection(section); //legge tutte le chiavi della sezione letta!
                foreach (string key in Key)
                {
                    Console.WriteLine(key);
                }

            }

            #endregion

            Console.WriteLine();


            #region Qui parto dal presupposto che so già cosa leggere

            //leggo tutta la sezione "impostazioni"
            ArrayList Impostazioni = mINI.ReadSection("impostazioni");
            foreach (string imp in Impostazioni)
            {
                Console.WriteLine(imp);
            }
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine();
            string Valore = mINI.ReadKey("impostazioni", "Percorso");
            Console.WriteLine("Prima: "+Valore);
            mINI.WriteFile("impostazioni", "Percorso", "D:");
            Valore = mINI.ReadKey("impostazioni", "Percorso");
            Console.WriteLine("Dopo: " +Valore);
            //se cerco di scrivere una chiave che non esiste viene creata e viene inserito il valore passato come parametro
            mINI.WriteFile("impostazioni", "BlaBla", "Questa chiave prima non c'era (1)");


            Console.WriteLine("\n" +
                mINI.ReadKey("impostazioni", "BlaBla")
            );

            //se cerco di sovrascrivere una sezione inesistente viene creata insieme alla chiave e al valore della stessa

            mINI.WriteFile("sezioneInesistente", "MuovaChiave", "Questa chiave prima non c'era (2)");

            Console.WriteLine("\n"+
                mINI.ReadKey("sezioneInesistente", "MuovaChiave")
                );
            #endregion

            Console.ReadKey();

        }
    }
}

Link sponsorizzati

Se ti è piaciuto l'articolo condividilo!

Post correlati:

Tags: , ,
Non sono ancora stati lasciati commenti.