rlinop
|
PORTO ALEGRE RS - BRASIL
|
|
Postada em 19/11/2004 14:57 hs
Olá gente .... É o seguinte.. estou tentando ler um *.ini... Mas o problema é que eu quero ler somente a segunda linha para pegar as informações:
Quote: CodLote=20 Caminho=D:RafaelCadastro Docscaddocs.mdb
Eu quero ler somente a informação "Caminho", alguém sabe me dizer como se faz????? Tipo antes eu precisei ler a primeira linha mas isso é fácil:
Dim Numero As String Dim Cont As Integer Dim Conteudo As String Open App.Path & "CadDocs.ini" For Input As #1 Line Input #1, CodLote Cont = InStr(1, CodLote, "=", vbTextCompare) CodLote = CInt(Mid(CodLote, Cont + 1, Len(CodLote)))
Close #1
Bom agora eu preciso ler a segunda linha ... Agradeço a todos..
Oks, Rafael Portal
|
|
|
|
|
Postada em 19/11/2004 16:01 hs
|
|
|
|
Postada em 19/11/2004 23:44 hs
Bem, você pode usar a API do Windows GetPrivateProfileString, que é o mais usual, chamando-a quantas vezes forem necessárias para cada parâmetro do seu arquivo INI, ou alterar o seu código assim: Dim Cont As Integer Dim CodLote As String , Caminho as String Open App.Path & "CadDocs.ini" For Input As #1 If not Eof(1) Then Line Input #1, CodLote Line Input #1, Caminho Cont = InStr(1, CodLote, "=", vbTextCompare) CodLote = CInt(Mid(CodLote, Cont + 1, Len(CodLote))) Cont = InStr(1, Caminho, "=", vbTextCompare) Caminho = Mid(Caminho,Cont+1) End IF Close #1
|
|
|
|
Postada em 20/11/2004 21:59 hs
*****no form***** Private Sub Command1_Click() GravaNoIni Text1(0).Text, Text1(1).Text, " " & Text1(2).Text, Text1(3).Text MsgBox "Ok" End Sub Private Sub Command2_Click() If MsgBox("Valor", vbQuestion + vbYesNo, "Aviso") = vbYes Then Dim y As Long y = PegaIntDoIni(Text1(0).Text, Text1(1).Text, y, Text1(3).Text) MsgBox y Else Dim x As String x = PegaStrDoIni(Text1(0).Text, Text1(1).Text, Text1(3).Text) MsgBox x End If End Sub ****no modulo**** Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal NAp As String, ByVal Chave As Any, ByVal St As Any, ByVal NArq As String) As Long Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" (ByVal NAp As String, ByVal Chave As String, ByVal nDefa As Long, ByVal NArq As String) As Long Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal NAp As String, ByVal Chave As Any, ByVal nDefa As String, ByVal StRet As String, ByVal nTama As Long, ByVal NArq As String) As Long
'GravaNoIni - Grava valor string em um arquivo INI Public Sub GravaNoIni(Secao As String, Item As String, V As String, NomeINI As String) WritePrivateProfileString Secao$, Item$, V$, NomeINI$ 'grava string no INI End Sub 'PegaStrDoIni - pega valor string em um arquivo INI Public Function PegaStrDoIni(Secao As String, Item As String, ArqIni As String) As String Dim p As String * 128, i As Long 'prepara buffer i = GetPrivateProfileString(Secao$, Item$, "", p$, 128, ArqIni$) 'aciona API PegaStrDoIni$ = Left$(p$, i) 'o tamanho está em i End Function 'PegaIntDoIni - pega valor inteiro em um arquivo INI Public Function PegaIntDoIni(Secao As String, Item As String, Defa As Long, ArqIni As String) As String PegaIntDoIni$ = GetPrivateProfileInt(Secao$, Item$, Defa, ArqIni$) 'pega inteiro na forma de string End Function
|
|
|
|