Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Lambda en 4 Junio 2006, 18:25 pm



Título: ayudita xD
Publicado por: Lambda en 4 Junio 2006, 18:25 pm
weno me e topao cn un problema a k no le encuentro soluicion xD

tngo un bas para leer INI's y asi cargar cierta configuracion

weno tngo una lista d juegos asi en el INI

Código:
[1]
nombre=juego1
autor=pepe
estado=ktimporta

[2]
nombre=juego2
autor=pepe2
estado=ktimporta2

y asi sucesivamente

lo k quiero es mostrar todo eso en un ListView cada categoria en una columna, para ello pense usar un bucle pero me da el siguiente error

"El tipo de agurmento ByRef no coincide"

el código del bas es este

Código:
Option Explicit
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 LeerIni(lpFileName As String, lpAppName As String, lpKeyName As String, Optional vDefault) As String
    Dim lpString As String
    Dim LTmp As Long
    Dim sRetVal As String

    If IsMissing(vDefault) Then
        lpString = ""
    Else
        lpString = vDefault
    End If

    sRetVal = String$(255, 0)

    LTmp = GetPrivateProfileString(lpAppName, lpKeyName, lpString, sRetVal, Len(sRetVal), lpFileName)
    If LTmp = 0 Then
        LeerIni = lpString
    Else
        LeerIni = Left(sRetVal, LTmp)
    End If
End Function

Sub GuardarIni(lpFileName As String, lpAppName As String, lpKeyName As String, lpString As String)
    Dim LTmp As Long

    LTmp = WritePrivateProfileString(lpAppName, lpKeyName, lpString, lpFileName)
End Sub

tambien he usado un timer pero me da otro error

saludos


Título: Re: ayudita xD
Publicado por: Cicklow en 4 Junio 2006, 20:20 pm
el error que te larga es porke el argumento que keres pasar por "referencia", no coincide con el tipo de variable a recivir.
Por ejemplo una funcion que recive un valor entera (integer), no puede recivir un string..
por eso el error..

Aka tenes la solucion!
Código:
Private Sub Command1_Click()
    Dim Z As String
    'For I = 1 To 15
    '    Z = I
    '    GuardarIni "c:\test.ini", Z, "nombre", "juego" & Z
    '    GuardarIni "c:\test.ini", Z, "autor", "autor" & Z
    '    GuardarIni "c:\test.ini", Z, "estado", "nidea" & Z
    'Next
    For I = 1 To 15
        Z = I
        A = LeerIni("C:\test.ini", Z, "nombre")
        B = LeerIni("C:\test.ini", Z, "autor")
        C = LeerIni("C:\test.ini", Z, "estado")
        List1.AddItem "- " & Z
        List1.AddItem "-- " & A
        List1.AddItem "-- " & B
        List1.AddItem "-- " & C
        List1.AddItem " "
    Next
End Sub


Título: Re: ayudita xD
Publicado por: Lambda en 4 Junio 2006, 22:02 pm
muchas gracias ^^ funciona a la perfeccion


saludos ::)