elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Problema inexplicable [solucionado]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema inexplicable [solucionado]  (Leído 3,348 veces)
ABDERRAMAH


Desconectado Desconectado

Mensajes: 431


en ocasiones uso goto ¬¬


Ver Perfil WWW
Problema inexplicable [solucionado]
« en: 28 Agosto 2010, 09:08 am »

Tengo un problema muy extraño. Normalmente siempre que tengo que guardar pequeñas cadenas de texto he utilizado éste módulo para hacerlo. Lo he usado en windows xp con framework 3 y posteriormente con 3.5. Recientemente he terminado un pequeño programa hecho en windows 7 con visualbasic 2010 que también lo usa y funciona a la perfección, pero como requiere framework 4 he decidido rehacerlo en visualbasic 2008 y windows xp 3.5, hasta ahí perfecto. La parte extraña viene cuando pruebo el programa (que es pequeño y fácil ya que solo maneja texto) escrito igual y con los mismos objetos, solo que sobre framework 3.5 y éste maldito modulo no funciona como debe.

Hay un evento (list value changed) que dispara un getvar() del módulo en cuestión, la primera vez que se ejecuta lo hace bien, las siguientes veces no lee nada. Pruebo putvar() y no funciona tampoco... os aseguro que con anterioridad yo he usado éstas funciones en éste mismo ordenador y no había problema, el código está comprobadisimo.

¿Es posible que con alguna última actualización haya cambiado el comportamiento de éstas? me parece muy raro, ya que sobre framework 4 en win7 funciona... no se... yo pienso que debería hacerle un exorcismo al pc o algo... ¿alguna idea? o ¿puede alguien probar el código en winxp y avisarme si funciona?
Código
  1.  
  2. Module modSystem
  3.    Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal AppName As String, ByVal KeyName As String, ByVal keydefault As String, ByVal ReturnedString As String, ByVal RSSize As Integer, ByVal FileName As String) As Integer
  4.    Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal AppName As String, ByVal KeyName As String, ByVal keydefault As String, ByVal FileName As String) As Integer
  5.  
  6.    Public Sub WriteINI(ByRef INISection As String, ByRef INIKey As String, ByRef INIValue As String, ByRef INIFile As String)
  7.        Call WritePrivateProfileString(INISection, INIKey, INIValue, INIFile)
  8.    End Sub
  9.  
  10.  
  11.    Public Function ReadINI(ByRef Section As String, ByRef KeyName As String, ByRef FileName As String, ByRef Default_Renamed As String) As String
  12.        Dim sRet As String
  13.        sRet = New String(Chr(0), 255)
  14.        ReadINI = Left(sRet, GetPrivateProfileString(Section, KeyName, Default_Renamed, sRet, Len(sRet), FileName))
  15.    End Function
  16.  
  17.  
  18.  
  19.    Public Function GetVar(ByRef file As String, ByRef Header As String, ByRef Var As String) As String
  20.        Dim sSpaces As String ' Max string length
  21.        Dim szReturn As String ' Return default value if not found
  22.        szReturn = vbNullString
  23.        sSpaces = Space(5000)
  24.        file = My.Application.Info.DirectoryPath & "\" & file
  25.        Call GetPrivateProfileString(Header, Var, szReturn, sSpaces, Len(sSpaces), file)
  26.        GetVar = RTrim(sSpaces)
  27.        GetVar = Microsoft.VisualBasic.Strings.Left(GetVar, Len(GetVar) - 1)
  28.    End Function
  29.  
  30.    Public Sub PutVar(ByRef file As String, ByRef Header As String, ByRef Var As String, ByRef Value As String)
  31.        On Error GoTo PutVar_Error
  32.        Dim fpath As String
  33.        fpath = My.Application.Info.DirectoryPath & "\" & file
  34.        Call WritePrivateProfileString(Header, Var, Value, fpath)
  35.        On Error GoTo 0
  36.        Exit Sub
  37. PutVar_Error:
  38.        MsgBox("Error " & Err.Number & " (" & Err.Description & ") en procedimiento putvar.")
  39.    End Sub
  40. End Module
  41.  


« Última modificación: 28 Agosto 2010, 20:38 pm por ABDERRAMAH » En línea

seba123neo


Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Problema inexplicable
« Respuesta #1 en: 28 Agosto 2010, 09:29 am »

las funciones GetVar y PutVar las probe y funcionan, el problema debe estar en el codigo que ejecutas cuando llamas a esas funciones, trata de usar Try Catch en .NET..en vez de On Error..sino parece visual basic 6.

saludos.


En línea

ABDERRAMAH


Desconectado Desconectado

Mensajes: 431


en ocasiones uso goto ¬¬


Ver Perfil WWW
Re: Problema inexplicable
« Respuesta #2 en: 28 Agosto 2010, 09:33 am »

Si, pero no. Será que necesito un formateo... Ya te digo que tengo el programa acabado en visualstudio 2010 y funciona perfecto, he repasado mil veces y no hay lugar a fallo, será mi sistema operativo. Gracias por la ayuda

Si que pondre try catch, es más elegante... no lo he cambiado porque siempre ha funcionado.
« Última modificación: 28 Agosto 2010, 09:35 am por ABDERRAMAH » En línea

[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
Re: Problema inexplicable
« Respuesta #3 en: 28 Agosto 2010, 17:39 pm »

Las versiones del framework no tienen nada que ver , y menos Visual Studio, ya que estas funcionan con la versión a la cual tu proyecto está apuntando, es decir, si hiciste una aplicación para la 2.0, siempre va a correr en la 2.0, que no quiere decir que sea algo viejo, porque la 2.0 está siempre como núcleo de las demás.

Ahora no puedo revisar tu código, me disculpas, pero estoy algo full de trabajo.

Acuérdate siempre de depurar linea por línea!

Un saludo!
En línea

ABDERRAMAH


Desconectado Desconectado

Mensajes: 431


en ocasiones uso goto ¬¬


Ver Perfil WWW
Re: Problema inexplicable
« Respuesta #4 en: 28 Agosto 2010, 20:37 pm »

Na, tranqui, lo de los framework que digo es que yo he terminado un programa sobre 4.0 y ahora quiero REESCRIBIRLO en 3.5 identico. El código está bien, no tiene nada que ver con los framework funciona en 4.0 igual que en 3 o 2. Lo que pasa que el programa compilado en 4.0 no funciona en la mayor parte de windows xp, eso es todo. De todas formas ya me han asegurado que el código funciona en xp, así que mi sistema tiene algo mal (como ya sospechaba por varias razones). Gracias por contestar de todas formas.
En línea

[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
Re: Problema inexplicable [solucionado]
« Respuesta #5 en: 29 Agosto 2010, 01:59 am »

Vale,

A la orden..

Saludos!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Algo inexplicable con mi wifi
Redes
Jessyca 2 2,584 Último mensaje 13 Abril 2012, 23:34 pm
por Stakewinner00
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines