Leer el contenido de un archivo .ini

thierry jupiter -  
wida Mensajes publicados 170 Estado Miembro -
Hola,
me gustaría leer con VB el contenido de un archivo .ini
leer línea por bloque
leer la línea palabra por palabra
¿tendrías un código que me puedas proponer
¡gracias!

5 respuestas

  1. xthorx_be Mensajes publicados 149 Estado Miembro 131
     
    leer un archivo ini:

    dim lgn as string
    dim Vect

    open "fichier.ini" for input as #1 'Apertura del archivo en lectura
    line input #1,lgn 'lgn contiene toda una línea hasta el carácter vbcrlf
    ...
    'si quieres dividir palabra por palabra haces
    vect=split(replace(lgn,"="," "), " ")
    ...
    reset 'Cierra todos los archivos abiertos

    lgn te da una línea clave=valor
    vect te dará una matriz que contiene todas las palabras de la línea.
    1
  2. anasweb
     
    Declare Private 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

    Declare Private Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long

    Function LireINI(Entete As String, Variable As String) As String
    Dim Retour As String
    Fichier = Path & "\" & FileName & ".ini"
    Retour = String(255, Chr(0))
    LireINI = Left$(Retour, GetPrivateProfileString(Entete, ByVal Variable, "", Retour, Len(Retour), Fichier))
    End Function

    Function EcrireINI(Entete As String, Variable As String, Valeur As String) As String
    Fichier = Path & "\" & FileName & ".ini"
    EcrireINI = WritePrivateProfileString(Entete, Variable, Valeur, Fichier)
    End Function

    ' Pour l'executer ex :
    EcrireINI("MonEntete", "MaVariable", "MaValeur")
    LireINI("MonEntete", "MaVariable")
    1
  3. jamil1976
     
    Jamil BETTAIEB :

    Hola,
    lo apliqué a un workbook de Excel y funciona muy bien
    a continuación el código modificado :

    -----------------------------------------------------------

    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 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

    Public Function LireINI(Entete As String, Variable As String, Path As String, Filename As String) As String
    Dim Retour As String
    Fichier = Path & "\" & Filename & ".ini"
    Retour = String(255, Chr(0))
    LireINI = Left$(Retour, GetPrivateProfileString(Entete, ByVal Variable, "", Retour, Len(Retour), Fichier))
    End Function

    Public Function EcrireINI(Entete As String, Variable As String, Valeur As String, Path As String, Filename As String) As String
    Fichier = Path & "\" & Filename & ".ini"
    WriteINI = WritePrivateProfileString(Entete, Variable, Valeur, Fichier)
    End Function

    utilisation :
    -----------------------

    Private Sub CommandButton1_Click()
    Dim Temp As String
    Dim MonEntete As String
    Dim Var1 As String
    Dim Valeur1 As String

    MonEntete = "Parametres Fichiers Distant a Traiter"
    Var1 = "Nom Fichier"

    '---Ecrire les valeurs à mettre dans le fichier INI---
    'Valeur1 = "CA_QUOTIDIEN_07_0074.xls"
    'Temp = EcrireINI(MonEntete, Var1, Valeur1, ActiveWorkbook.Path, "AppConf1")

    '---Ecrire les valeurs à mettre dans le fichier INI---
    Valeur1 = ""
    Valeur1 = LireINI(MonEntete, Var1, ActiveWorkbook.Path, "AppConf1")
    MsgBox Valeur1

    End Sub
    0
    1. tirakawa
       
      excelente
      gracias jamil
      0
  4. wida Mensajes publicados 170 Estado Miembro 17
     
    buen trabajo,
    Gracias
    --
    El sueño no llega a nada, la acción lo es todo.
    (J. FIAUX).
    0