Jump to content

VB.NET INI API [transferido para wiki]


fLaSh_PT

Recommended Posts

Desenvolvi esta classes para um trabalhos que realizei, poderá ser útil para qualquer um.

Ideal para guardar pequenos dados como configurações internas da aplicação 😄

'========================================
'       Codificado por Carlos.DF
'           fLaSh - 2009-08
'   carlosferreiracarlos@hotmail.com
'========================================
Imports System.IO
''' <summary>
''' Classe de suporte aos ficheiros INI por API..
''' </summary>
''' <remarks></remarks>
Partial Public Class INI

    'API standard para o suporte INI
    Private Declare Unicode Function WritePrivateProfileString Lib "kernel32" _
                            Alias "WritePrivateProfileStringW" (ByVal lpApplicationName As String, _
                            ByVal lpKeyName As String, ByVal lpString As String, _
                            ByVal lpFileName As String) As Int32

    Private Declare Unicode Function GetPrivateProfileString Lib "kernel32" _
                            Alias "GetPrivateProfileStringW" (ByVal lpApplicationName As String, _
                            ByVal lpKeyName As String, ByVal lpDefault As String, _
                            ByVal lpReturnedString As String, ByVal nSize As Int32, _
                            ByVal lpFileName As String) As Int32

    Public Shared Function Read(ByVal INIPath As String, _
                                ByVal SectionName As String, _
                                ByVal KeyName As String, _
                                ByVal DefaultValue As String) As String
        ' Carrega uma string do INI
        Dim n As Int32
        Dim sData As String
        sData = Space$(1024) ' Tamanho maxi da string
        n = GetPrivateProfileString(SectionName, KeyName, DefaultValue, _
        sData, sData.Length, INIPath)
        If n > 0 Then
            Return sData.Substring(0, n)
        Else
            Return ""
        End If
    End Function

    Public Shared Function Read(ByVal INIPath As String, _
                                ByVal SectionName As String, _
                                ByVal KeyName As String) As String
        ' Carrega uma string do INI
        Return Read(INIPath, SectionName, KeyName, "")
    End Function

    Public Shared Function Read(ByVal INIPath As String, _
                                ByVal SectionName As String) As String
        ' Carrega uma string do INI
        Return Read(INIPath, SectionName, Nothing, "")
    End Function

    Public Shared Function Read(ByVal INIPath As String) As String
        ' Carrega uma string do INI
        Return Read(INIPath, Nothing, Nothing, "")
    End Function

    Public Shared Sub Write(ByVal INIPath As String, _
                            ByVal SectionName As String, _
                            ByVal KeyName As String, _
                            ByVal TheValue As String)
        ' Cria uma nova seccao no INI
        Call WritePrivateProfileString(SectionName, KeyName, TheValue, INIPath)
    End Sub

    Public Shared Sub Delete(ByVal INIPath As String, _
                             ByVal SectionName As String, _
                             ByVal KeyName As String)
        ' Remove uma seccao do INI 
        Call WritePrivateProfileString(SectionName, KeyName, Nothing, INIPath)
    End Sub

    Public Shared Sub Delete(ByVal INIPath As String, _
                             ByVal SectionName As String)
        ' Remove uma seccao do INI
        Call WritePrivateProfileString(SectionName, Nothing, Nothing, INIPath)
    End Sub

End Class

Pequeno exemplo como utilizar

' Para escrever
INI.Write("INI_PATH", "seccao", "key", "qualquer_valor")
'Para ler
Dim qualquer_variavel As String = INI.Read("INI_PATH", "seccao", "key", "quaquer_valor_por_defeto")

Limitações: O valores a guardar/ler não podem ter mais de 1024 caracteres.

Compr.

Making the impossible possible and pwing the world on db at a time.

Link to comment
Share on other sites

  • 3 months later...

Olá Mano....

sou novato em VB.Net... poderia me dizer em quem secção do código  boto este código?

e como faço a inclusão deste ficheiro no meu projecto? ou ele é criado automaticamente?

Grato pela atenção

PS

manos... consegui fazer ou seja, definir o caminho do ficheiro... a minha questão é? como faço para que o instalador da minha aplicação copie o ficheiro de configuração numa pasta pré-definida, como  por exemplo: "C:\MeuPrograma\Config.ini"

Obrigado pela atençãç

O verdadeiro sábio é um eterno aprendiz!

http://www.patriciodossantos.net
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.