Autor Tema: Leer archivo ini - saber si una seccion y clave existe?  (Leído 4704 veces)

0 Usuarios y 1 Visitante están viendo este tema.

zxs23

  • Megabyte
  • ***
  • Mensajes: 146
  • Reputación: +5/-2
    • Ver Perfil
Leer archivo ini - saber si una seccion y clave existe?
« 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


coco

  • Administrador
  • Terabyte
  • *****
  • Mensajes: 548
  • Reputación: +63/-3
    • Ver Perfil
Re:Leer archivo ini - saber si una seccion y clave existe?
« Respuesta #1 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
'-     coco
(No me cabe: Java, Python ni Pascal)
SQLite - PIC 16F y 18F - ARM STM32 - ESP32 - Linux Embebido - VB6 - Electronica - Sonido y Ambientacion

seba123neo

  • Terabyte
  • *****
  • Mensajes: 763
  • Reputación: +88/-5
    • Ver Perfil
Re:Leer archivo ini - saber si una seccion y clave existe?
« Respuesta #2 en: Febrero 27, 2010, 12:33:06 pm »
Manipular ficheros INIs
usando el API


ahi tenes todas las api's para usar con los .ini

zxs23

  • Megabyte
  • ***
  • Mensajes: 146
  • Reputación: +5/-2
    • Ver Perfil
Re:Leer archivo ini - saber si una seccion y clave existe?
« Respuesta #3 en: Febrero 27, 2010, 01:12:00 pm »
Gracias por responder con eso es suficiente.

saludos