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
Ir a la versión completa