• Viernes 8 de Noviembre de 2024, 15:49

Autor Tema:  Api, .ini, y rutas de archivo.  (Leído 1458 veces)

Begeo

  • Nuevo Miembro
  • *
  • Mensajes: 21
  • Nacionalidad: es
    • Ver Perfil
Api, .ini, y rutas de archivo.
« en: Lunes 18 de Agosto de 2008, 12:59 »
0
Saludos.

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

Código: Text
  1. Dim TemCard As Integer
  2. Dim TemCarNumber As Integer
  3. Dim TemCarRoute As String
  4. Dim TemCarNumberStr As String
  5. TemCard = Val(GetVar(App.Path & "cards.ini", "AMMOUNT", "CardAmmount"))
  6. TemCarNumber = Rand(1, TemCard)
  7. TemCarNumberStr = "C" & CStr(TemCarNumber)
  8. TemCarRoute = GetVar(App.Path & "cards.ini", TemCarNumberStr, "NameB")
  9. B1.Picture = LoadPicture(App.Path & "GFX" & TemCarRoute)
  10.  
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
  1. [AMMOUNT]
  2. CardAmmount=1
  3. [C1]
  4. NameB=BA215.jpg
  5. NameR=RA215.jpg
  6. Up=10
  7. Left=2
  8. Right=1
  9. Down=5
  10.  

Función para leer .ini
Código: Text
  1. Public Function GetVar(File As String, Header As String, Var As String) As String
  2. Dim sSpaces As String   ' Max string length
  3. Dim szReturn As String  ' Return default value if not found
  4.  
  5.     szReturn = vbNullString
  6.  
  7.     sSpaces = Space$(1000)
  8.  
  9.     Call GetPrivateProfileString(Header, Var, szReturn, sSpaces, Len(sSpaces), File)
  10.  
  11.     GetVar = RTrim$(sSpaces)
  12.     GetVar = Left(GetVar, Len(GetVar) - 1)
  13. End Function
  14.  
Asi concierne al proyecto mizuki, dejando a los dos solitarios. Debe de ser algo que hay en la vista, necesitando llevar las gafas por una razon.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Api, .ini, y rutas de archivo.
« Respuesta #1 en: Lunes 18 de Agosto de 2008, 13:53 »
0
¿Te funciona la línea
Código: Text
  1.  
  2. TemCard = Val(GetVar(App.Path & "cards.ini", "AMMOUNT", "CardAmmount"))
  3.  
  4.  
?

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

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Api, .ini, y rutas de archivo.
« Respuesta #2 en: Lunes 18 de Agosto de 2008, 13:56 »
0
Por cierto, ¿te has fijado que en está línea

Código: Text
  1.  
  2. TemCard = Val(GetVar(App.Path & "cards.ini", "AMMOUNT", "CardAmmount"))
  3.  
  4.  

no añades "" a App.Path y que en ésta siguiente sí:

Código: Text
  1.  
  2. B1.Picture = LoadPicture(App.Path & "GFX" & TemCarRoute)
  3.  
  4.  
?

 :P

Begeo

  • Nuevo Miembro
  • *
  • Mensajes: 21
  • Nacionalidad: es
    • Ver Perfil
Re: Api, .ini, y rutas de archivo.
« Respuesta #3 en: Lunes 18 de Agosto de 2008, 14:33 »
0
Cita de: "m0skit0"
Por cierto, ¿te has fijado que en está línea

Código: Text
  1.  
  2. TemCard = Val(GetVar(App.Path & "cards.ini", "AMMOUNT", "CardAmmount"))
  3.  
  4.  

no añades "" a App.Path y que en ésta siguiente sí:

Código: Text
  1.  
  2. B1.Picture = LoadPicture(App.Path & "GFX" & TemCarRoute)
  3.  
  4.  
?

 :P
Parece lógico, testeando los valores con MsgBox:
Código: Text
  1. TemCard = Val(GetVar(App.Path & "cards.ini", "AMMOUNT", "CardAmmount"))
  2. MsgBox (TemCard)
  3. TemCarNumber = Rand(1, TemCard)
  4. MsgBox (TemCarNumber)
  5. TemCarNumberStr = "C" & CStr(TemCarNumber)
  6. MsgBox (TemCarNumberStr)
  7. TemCarRoute = GetVar(App.Path & "cards.ini", TemCarNumberStr, "NameB")
  8. MsgBox (TemCarRoute)
  9.  
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
  1. TemCard = Val(GetVar(App.Path & "cards.ini", "AMMOUNT", "CardAmmount"))
  2. TemCarNumber = Rand(1, TemCard)
  3. TemCarNumberStr = "C" & CStr(TemCarNumber)
  4. TemCarRoute = GetVar(App.Path & "cards.ini", TemCarNumberStr, "NameB")
  5. B1.Picture = LoadPicture(App.Path & "GFX" & TemCarRoute)
  6.  

¿Funcionará? ¿Si? ¿No? Veamos...

TemCarRoute = BA215.jpg

Gracias moskit0 por la idea para solventarlo  ^-^
Asi concierne al proyecto mizuki, dejando a los dos solitarios. Debe de ser algo que hay en la vista, necesitando llevar las gafas por una razon.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Api, .ini, y rutas de archivo.
« Respuesta #4 en: Lunes 18 de Agosto de 2008, 15:20 »
0
De nada. Si quieres testear los valores sin MsgBox recuerda que tienes Debug.Print. Un placer.