Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: zxs23 en Febrero 27, 2010, 12:11:53 am

Título: Leer archivo ini - saber si una seccion y clave existe?
Publicado por: zxs23 en Febrero 27, 2010, 12:11:53 am
Primero estoy comprobando si el archivo existe pero luego me da error si la seccion info no existe.

Código: [Seleccionar]
If Len(Trim$(Dir$(App.path & "\config.ini"))) Then
   hh = LeeINI(xRuta, "info", "nombre")

Como compruebo si una seccion de un archivo existe?, dejo la funcion que utilizo para leer.

Código: [Seleccionar]
Public Function LeeINI(Archivo As String, Seccion As String, Clave As String)
 Dim iRetLen As Integer
 Dim sRet As String
 sRet = Space(255)
 iRetLen = GetPrivateProfileString(Seccion, Clave, "", sRet, Len(sRet), Archivo)
 sRet = Left(sRet, iRetLen)
 LeeINI = sRet
End Function

Título: Re:Leer archivo ini - saber si una seccion y clave existe?
Publicado por: coco en Febrero 27, 2010, 01:55:55 am
Primero estoy comprobando si el archivo existe pero luego me da error si la seccion info no existe.

Código: [Seleccionar]
If Len(Trim$(Dir$(App.path & "\config.ini"))) Then
   hh = LeeINI(xRuta, "info", "nombre")

Como compruebo si una seccion de un archivo existe?, dejo la funcion que utilizo para leer.

Código: [Seleccionar]
Public Function LeeINI(Archivo As String, Seccion As String, Clave As String)
 Dim iRetLen As Integer
 Dim sRet As String
 sRet = Space(255)
 iRetLen = GetPrivateProfileString(Seccion, Clave, "", sRet, Len(sRet), Archivo)
 sRet = Left(sRet, iRetLen)
 LeeINI = sRet
End Function



podes hacer 2 cosas, comprobar si existe la seccion:
Código: (vb) [Seleccionar]
Private Declare Function GetPrivateProfileSectionNames Lib "kernel32.dll" Alias "GetPrivateProfileSectionNamesA" (ByVal lpszReturnBuffer As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Private Sub Form_Load()
    Dim szBuf As String, Length As Integer
    Dim SectionArr() As String, m As Integer
    szBuf = String$(255, 0)
    Length = GetPrivateProfileSectionNames(szBuf, 255, vbNullChar)
    szBuf = Left$(szBuf, Length)
    SectionArr = Split(szBuf, vbNullChar)
    For m = 0 To UBound(SectionArr)
        Debug.Print "seccion: "; SectionArr(m)
    Next m
End Sub

o sino ver el valor de iRetLen.

saludos
Título: Re:Leer archivo ini - saber si una seccion y clave existe?
Publicado por: seba123neo en Febrero 27, 2010, 12:33:06 pm
Manipular ficheros INIs
usando el API (http://www.elguille.info/vb/utilidades/inis.htm)

ahi tenes todas las api's para usar con los .ini
Título: Re:Leer archivo ini - saber si una seccion y clave existe?
Publicado por: zxs23 en Febrero 27, 2010, 01:12:00 pm
Gracias por responder con eso es suficiente.

saludos