Visual Basic 6 - O que é um arquivo INI ?
Você sabe o que é um arquivo 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
A 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.INI 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 |
Como exemplo vamos usar o arquivo SHOW.INI (Show do Zecão) 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:
Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nsize As Long, ByVal lpFileName As String) As Long |
2-) API usada para escrever em uma arquivo INI. Geralmente você faz esta declaração em um módulo
Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long |
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 Function ReadINI(Secao As String,
Entrada As String, Arquivo As String) 'Arquivo=nome do arquivo ini 'Secao=O que esta entre [] 'Entrada=nome do que se encontra antes do sinal de igual Dim retlen As String Dim Ret As String Ret = String$(255, 0) retlen = GetPrivateProfileString(Secao, Entrada, "", Ret, Len(Ret), Arquivo) Ret = Left$(Ret, retlen) ReadINI = Ret End Function |
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 Sub WriteINI(Secao As String,
Entrada As String, Texto As String, Arquivo As String) 'Arquivo=nome do arquivo ini 'Secao=O que esta entre [] 'Entrada=nome do que se encontra antes do sinal de igual 'texto= valor que vem depois do igual WritePrivateProfileString Secao, Entrada, Texto, Arquivo End Sub |
No nosso caso para Ler os valores do arquivo SHOW.INI usamos o seguinte código:
valortempo = ReadINI("Geral",
"Tempo", App.Path & "\show.ini") valorajuda = ReadINI("Geral", "Ajuda", App.Path & "\show.ini") atualizaperguntas = ReadINI("Geral", "Atualiza", App.Path & "\show.ini") |
As variáveis valortempo, valorajuda e atualizaperguntas irão armazenar os valores lidos do arquivo Show.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:
Call WriteINI("Geral",
"Tempo", txttempo.Text, App.Path &
"\show.ini") Call WriteINI("Geral", "Ajuda", txtajuda.Text, App.Path & "\show.ini") Call WriteINI("Geral", "Atualiza", txtatualiza.Text, App.Path & "\show.ini") |
Os valores são informados nas caixas de texto txttempo.txt , txtajuda.text e txtatualiza.text . Como isso lemos e escrevemos em arquivos INI.
Veja o artigo - Show do Zecão - que mostra a utilização prática dos arquivos INI.(e otras cositas mas...)
Até o próximo artigo...
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a Objetos com VB .NET