Ver Mensaje Individual
  #14 (permalink)  
Antiguo 22/07/2008, 21:35
Avatar de moradazo
moradazo
 
Fecha de Ingreso: julio-2008
Ubicación: [email protected]
Mensajes: 355
Antigüedad: 16 años, 9 meses
Puntos: 2
Respuesta: Visual Basic 2005: Grabar y leer .ini

Hola vuelvo a este tema de nuevo.
Digamos tengo esta información en un archivo .ini

[level_1]
data="Usuario"

[level_2]
data="Nombre1"
[level_3]
data="Apellidos1"

[level_2]
data="Nombre2"
[level_3]
data="Apellidos2"

[level_2]
data="Nombre3"
[level_3]
data="Apellidos3"

[level_2]
data="Nombre4"
[level_3]
data="Apellidos4"

Este archivo .ini tiene 3 árboles donde el primero es el nombre de usuario, la otra el segundo el nombre y el tercero el apellido.

Y estoy usando este código que me dio Avellaneda pero por más que cambie variables y sentencias no puedo hacer que el código logre leer este formato del archivo ini.

Código:
Private Sub btnListar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnListar.Click
        'creamos la cadena de caracteres
        Dim sb As New System.Text.StringBuilder(255)
        ' asignamos la memoria al puntero
        Dim ip As IntPtr = Runtime.InteropServices.Marshal.AllocHGlobal(255)
        Try
            Dim bt As Byte = GetPrivateProfileSection("Usuarios", ip, 255, "C:\Temp.ini")

            For i As Integer = 0 To bt - 1
                ' convertimos los bytes a caracteres y los añadimos al StringBuilder
                sb.Append(Convert.ToChar(Runtime.InteropServices.Marshal.ReadByte(ip, i)))
            Next
            ' eliminamos el último carácter que es nulo
            sb.Remove(sb.Length - 1, 1)
            ' limpiamos el TextBox y añadimos cada línea de la sección [Usuarios]
            ListBox1.Items.Clear()
            For Each line As String In sb.ToString().Split(Convert.ToChar(0))
                ListBox1.Items.Add(line)
            Next
        Catch ex As System.Exception
            System.Windows.Forms.MessageBox.Show(ex.Message)
        Finally
            ' liberamos la memoria
            Runtime.InteropServices.Marshal.FreeHGlobal(ip)
        End Try
    End Sub
Si me pueden ayudar con esta parte les agradeceré mucho