Programación General > Visual Basic 6.0 e inferiores

 Api, .ini, y rutas de archivo.

(1/1)

Begeo:
Saludos.

Me dirijo a ustedes para intentar solventar ese problema con mi pequeño proyecto.


--- Código: Text ---Dim TemCard As IntegerDim TemCarNumber As IntegerDim TemCarRoute As StringDim TemCarNumberStr As StringTemCard = Val(GetVar(App.Path & "cards.ini", "AMMOUNT", "CardAmmount"))TemCarNumber = Rand(1, TemCard)TemCarNumberStr = "C" & CStr(TemCarNumber)TemCarRoute = GetVar(App.Path & "cards.ini", TemCarNumberStr, "NameB")B1.Picture = LoadPicture(App.Path & "GFX" & TemCarRoute) No encuentro el problema aquí, ya que teóricamente, la salida de "B1.Picture = LoadPicture(App.Path & "GFX" & TemCarRoute)" tendría que ser App.PathGFXBA215.jpg (BA215.jpg es el valor de NameB en cards.ini).

Pero, en la práctica, la línea "TemCarRoute = GetVar(App.Path & "cards.ini", TemCarNumberStr, "NameB")" no devuelve ningún valor.

Ayuden, si no les importa.  ^_^

Más cosas que podrían ser útiles:

cards.ini

--- Código: Text ---[AMMOUNT]CardAmmount=1[C1]NameB=BA215.jpgNameR=RA215.jpgUp=10Left=2Right=1Down=5 
Función para leer .ini

--- Código: Text ---Public Function GetVar(File As String, Header As String, Var As String) As StringDim sSpaces As String   ' Max string lengthDim szReturn As String  ' Return default value if not found      szReturn = vbNullString      sSpaces = Space$(1000)      Call GetPrivateProfileString(Header, Var, szReturn, sSpaces, Len(sSpaces), File)      GetVar = RTrim$(sSpaces)    GetVar = Left(GetVar, Len(GetVar) - 1)End Function 

m0skit0:
¿Te funciona la línea

--- Código: Text --- TemCard = Val(GetVar(App.Path & "cards.ini", "AMMOUNT", "CardAmmount"))   ?

Según tu ejemplo TemCard tendría que tener valor 1.

Usa puntos de interrupción para poder consultar los valores en ejecución. Ya me cuentas.

m0skit0:
Por cierto, ¿te has fijado que en está línea


--- Código: Text --- TemCard = Val(GetVar(App.Path & "cards.ini", "AMMOUNT", "CardAmmount"))  
no añades "" a App.Path y que en ésta siguiente sí:


--- Código: Text --- B1.Picture = LoadPicture(App.Path & "GFX" & TemCarRoute)   ?

 :P

Begeo:

--- Cita de: "m0skit0" ---Por cierto, ¿te has fijado que en está línea


--- Código: Text --- TemCard = Val(GetVar(App.Path & "cards.ini", "AMMOUNT", "CardAmmount"))  
no añades "" a App.Path y que en ésta siguiente sí:


--- Código: Text --- B1.Picture = LoadPicture(App.Path & "GFX" & TemCarRoute)   ?

 :P
--- Fin de la cita ---
Parece lógico, testeando los valores con MsgBox:

--- Código: Text ---TemCard = Val(GetVar(App.Path & "cards.ini", "AMMOUNT", "CardAmmount"))MsgBox (TemCard)TemCarNumber = Rand(1, TemCard)MsgBox (TemCarNumber)TemCarNumberStr = "C" & CStr(TemCarNumber)MsgBox (TemCarNumberStr)TemCarRoute = GetVar(App.Path & "cards.ini", TemCarNumberStr, "NameB")MsgBox (TemCarRoute) TemCard = 0
TemCarnumber = 1
TemCarNumberStr = C1
TemCarRoute = "" (Null, vamos.)

Así que por el precio de uno, nos llevamos 2 bugs.

Probemos TemCard con el  añadido:
TemCard = 1

Gracias moskit0, pero creo que el problema de que no lee la ruta aún está ahí  :mellow:

Probemos con . . .


--- Código: Text ---TemCard = Val(GetVar(App.Path & "cards.ini", "AMMOUNT", "CardAmmount"))TemCarNumber = Rand(1, TemCard)TemCarNumberStr = "C" & CStr(TemCarNumber)TemCarRoute = GetVar(App.Path & "cards.ini", TemCarNumberStr, "NameB")B1.Picture = LoadPicture(App.Path & "GFX" & TemCarRoute) 
¿Funcionará? ¿Si? ¿No? Veamos...

TemCarRoute = BA215.jpg

Gracias moskit0 por la idea para solventarlo  ^-^

m0skit0:
De nada. Si quieres testear los valores sin MsgBox recuerda que tienes Debug.Print. Un placer.

Navegación

[0] Índice de Mensajes

Ir a la versión completa