SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: Begeo en Lunes 18 de Agosto de 2008, 12:59

Título: Api, .ini, y rutas de archivo.
Publicado por: Begeo en Lunes 18 de Agosto de 2008, 12:59
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.  
Título: Re: Api, .ini, y rutas de archivo.
Publicado por: m0skit0 en Lunes 18 de Agosto de 2008, 13:53
¿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.
Título: Re: Api, .ini, y rutas de archivo.
Publicado por: m0skit0 en Lunes 18 de Agosto de 2008, 13:56
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
Título: Re: Api, .ini, y rutas de archivo.
Publicado por: Begeo en Lunes 18 de Agosto de 2008, 14:33
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  ^-^
Título: Re: Api, .ini, y rutas de archivo.
Publicado por: m0skit0 en Lunes 18 de Agosto de 2008, 15:20
De nada. Si quieres testear los valores sin MsgBox recuerda que tienes Debug.Print. Un placer.