sexta-feira, 13 de outubro de 2017

Projecto 2 CRUD com MS Access

sexta-feira, 6 de outubro de 2017

Aprenda a usar arquivos .ini


Um arquivo INI é um arquivo texto usado para armazenar/fornecer configurações pessoais para sistemas/usuários ; Um arquivo INI é um arquivo com dados externo ao programa principal e esta formatado em : Secções(FileName) , Entradas( e Valores 
[Seçao1]
entrada=valor
entrada=valor
entrada=valor
[Seção2]
entrada=valor
entrada=valor
  • Seção identifica um conjunto de entradas e valores e esta relacionado a um determinado programa. Como muitos programas podem usar o mesmo arquivo INI ( Ex: o arquivo WIN.INI ) geralmente uma seção trazia o nome do programa que iria usá-la.
  • Uma Entrada funciona como um identificador para variáveis.
  • Os Valores são usados , como o próprio nome diz , para atribuir valores as entradas , e , sempre estão no formato Strings , mesmo sendo números.
Um exemplo de arquivo INI é o WIN.IN cuja estrutura mostramos em parte a seguir:
[windows]
load=
run=
NullPort=None
device=HP DeskJet 690C,HPDSKJTB,LPT1:
SingleClickSpeed=067614

[Desktop]
Wallpaper=(None)
TileWallpaper=0
WallpaperStyle=2
Pattern=120 49 19 135 225 200 140 30
Vamos usar como exemplo um arquivo ini chamado SisMap.INI para guardar algumas preferências do usuário. Sua estrutura é a seguinte:
[Geral]
Tempo=50
Ajuda=2
Atualiza=SIM
Como fazemos para acessar e/ou alterar os valores em um arquivo INI ?
Boa pergunta ! Para fazer isto usamos duas API´s do Windows , vamos apresentá-las:
1-) API usada para ler os arquivos INI . Geralmente você faz esta declaração em um módulo:

[DllImport("kernel32")]
        private static extern int GetPrivateProfileString(string section,string key,
string def, StringBuilder retVal,int size,string filePath);

2-) API usada para escrever em uma arquivo INI. Geralmente você faz esta declaração em um módulo:

[DllImport("kernel32")]
        private static extern long WritePrivateProfileString(string section,string key,string val,string filePath);
Agora basta escrever duas funções que usam estas API´s , uma ler outra para escrever. Eí-las prontas abaixo:
1-) Função - ReadINI - lê um arquivo INI. Precisa de três parâmetros : O nome da Seção , o nome da Entrada e o nome do Arquivo INI.

public string ReadINI(string Section,string Key,string path)
{
            StringBuilder temp = new StringBuilder(255);
            int i = GetPrivateProfileString(Section,Key,"",temp,255, path);
            return temp.ToString();
}

2-) A função - WriteINI - escreve em um arquivo INI. Precisa de quatro parâmetros : o nome da Seção , o nome da Entrada ,  o nome do Texto ( Valor ) e o nome do arquivo INI.

public void WriteINI(string Section,string Key,string Value,string path)
{
           WritePrivateProfileString(Section,Key,Value,path);
}

No nosso caso para Ler os valores do arquivo SisMap.INI usamos o seguinte código:

string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "sismap.ini");
valortempo = ReadINI("Geral", "Tempo",path );
valorajuda = ReadINI("Geral", "Ajuda", path );
atualizaperguntas = ReadINI("Geral", "Atualiza",path);


As variáveis valortempo, valorajuda e atualizaperguntas irão armazenar os valores lidos do arquivo SisMap.ini através da função ReadINI.

Para Escrever em um arquivo INI alterando os valores das entradas: Tempo, Ajuda e Atualiza , usamos o seguinte código:
string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "sismap.ini");
WriteINI("Geral", "Tempo", txtTempo.Text, path );
WriteINI("Geral", "Ajuda", txtAjuda.Text, path );
WriteINI("Geral", "Atualiza", txtAtualiza.Text, path );

Os valores são informados nas caixas de texto txtTempo.txt , txtAjuda.text e txtAtualiza.text . Como isso lemos e escrevemos em arquivos INI.

Fonte

Pesquisar neste blogue

Com tecnologia do Blogger.

Páginas