OUTRA DUVIDA COM ARQUIVO INI

USUARIO.EXCLUIDOS 17/04/2007 09:48:32
#212229
Galera já pesquisei sobre o arquivo ini e encontrei alguns respostas e até encontrei as resposta que estava procurando que é a respeito da gravação e leitura do arquivo ini , quanto a gravação do arquivo ini deu tudo certo o proplema é a leitura desse arquivo e peço para ler o arquivo que acabei de gerar e não me aparece nada segue abaixo o exemplo que vi eu gostaria de ver onde estou errando


'Em um Modulo
'Declaracao
Private 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
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As Any, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

'Funcao para acessar o ini

Public Function LerIni(filename As String, Section As String, Key As String, Optional Default As String = "") As String
Dim BufferSize As Long, Ret As Long
Do
BufferSize = BufferSize + 256
ReadIni = Space(BufferSize)
Ret = GetPrivateProfileString(Section, Key, Default, ReadIni, BufferSize, filename)
Loop Until Ret < BufferSize - 1
If Ret > 0 Then
ReadIni = Left$(ReadIni, Ret)
Else
ReadIni = ""
End If
End Function



[c]Public Sub GravarINI(filename As String, Section As String, Key As String, Text As String)
WritePrivateProfileString Section, Key, Text, filename
End Sub




GravarINI "CaminhodoArquivo.ini", "Teste","AA","Valor a ser salvo"


Para ler:
Dim Temp as String
temp = LerIni(CaminhodoArquivo.ini, "Teste","AA","Valor opcional para o caso de nao achar nada")


estou colocando esse arquivo de leitura em botão e me aparece nada
gostaria de saber porque?


USUARIO.EXCLUIDOS 17/04/2007 10:08:07
#212236
Veja isso:

Option Explicit
Private 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
Private 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
Private ArqINI As String
Public Function Ini_Ler(ByVal Secao As String, ByVal Chave As String) As String
Dim ret As String, RetLen As Variant
ret = Space$(255)
RetLen = GetPrivateProfileString(Secao, Chave, "", ret, Len(ret), ArqINI)
ret = Left$(ret, RetLen)
Ini_Ler = ret
ret = Empty
End Function

Public Sub Ini_Gravar(ByVal Secao As String, ByVal Chave As String, ByVal Valor As String)
WritePrivateProfileString Secao, Chave, Valor, ArqINI
End Sub

Public Property Let Ini_Caminho(ByVal iDiretorio As String)
ArqINI = iDiretorio
End Property
Public Property Get Ini_Caminho() As String
Ini_Caminho = ArqINI
End Property

'Exemplo
Ini_Caminho = App.Path & "\Config.ini"
'Para ler
Text1 = Ini_Ler("Email", "Remetente")
'Para Gravar
Ini_Gravar "Email", "Remetente", Text1


Espero ter te ajudado
WEBMASTER 17/04/2007 10:12:12
#212237
Porque voce nao pega a classe de arquivos ini ?
O objeto eh reutilizavel e muito mais portavel para os seus projetos.
WHELLNET 17/04/2007 19:10:26
#212409
Resposta escolhida
Ou adicione esse módulo em seu projeto e use:
'Para gravar
GravaIni "Chave", "Item", "Valor", "C:\Arquivo.ini"

'Para ler
A = LeIni("Chave", "Item", "C:\Arquivo.ini")

Sem api e totalmente compativel com Win9X, 2000, XP
O nome do arquivo é opcional, se vc não informar ele seguira o caminho e nome de sua aplicacao.
Tópico encerrado , respostas não são mais permitidas