C# Leggere un file INI
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
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();
}
}
}
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

