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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Pregunta sobre un codigo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Pregunta sobre un codigo  (Leído 2,128 veces)
CH4ØZ

Desconectado Desconectado

Mensajes: 108



Ver Perfil
Pregunta sobre un codigo
« en: 13 Octubre 2009, 02:51 am »

hola el otro dia buscando codigos para trabajar con archivos .ini que me pudieran ayudar y servir de guia encontre este, pero hay una cosa que no entendi:
Código
  1. Option Explicit  
  2.  
  3. Const APPLICATION As String = "MiPrograma"  
  4.  
  5. Dim m_Left As Single  
  6. Dim m_Top As Single  
  7. Dim m_Width As Single  
  8. Dim m_Height As Single  
  9.  
  10. Dim Path_Archivo_Ini As String  
  11.  
  12. 'Función api que recupera un valor-dato de un archivo Ini  
  13. Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" ( _  
  14.    ByVal lpApplicationName As String, _  
  15.    ByVal lpKeyName As String, _  
  16.    ByVal lpDefault As String, _  
  17.    ByVal lpReturnedString As String, _  
  18.    ByVal nSize As Long, _  
  19.    ByVal lpFileName As String) As Long  
  20.  
  21. 'Función api que Escribe un valor - dato en un archivo Ini  
  22. Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" ( _  
  23.    ByVal lpApplicationName As String, _  
  24.    ByVal lpKeyName As String, _  
  25.    ByVal lpString As String, _  
  26.    ByVal lpFileName As String) As Long  
  27.  
  28.  
  29. 'Lee un dato _  
  30. -----------------------------  
  31. 'Recibe la ruta del archivo, la clave a leer y _  
  32. el valor por defecto en caso de que la Key no exista  
  33. Private Function Leer_Ini(Path_INI As String, Key As String, Default As Variant) As String  
  34.  
  35. Dim bufer As String * 256  
  36. Dim Len_Value As Long  
  37.  
  38.        Len_Value = GetPrivateProfileString(APPLICATION, _  
  39.                                         Key, _  
  40.                                         Default, _  
  41.                                         bufer, _  
  42.                                         Len(bufer), _  
  43.                                         Path_INI)  
  44.  
  45.        Leer_Ini = Left$(bufer, Len_Value)  
  46.  
  47. End Function  
  48.  
  49. 'Escribe un dato en el INI _  
  50. -----------------------------  
  51. 'Recibe la ruta del archivo, La clave a escribir y el valor a añadir en dicha clave  
  52.  
  53. Private Function Grabar_Ini(Path_INI As String, Key As String, Valor As Variant) As String  
  54.  
  55.    WritePrivateProfileString APPLICATION, _  
  56.                                         Key, _  
  57.                                         Valor, _  
  58.                                         Path_INI  
  59.  
  60. End Function  
  61.  
  62.  
  63. Private Sub Form_Load()  
  64.  
  65.    'Path del fichero Ini  
  66.    Path_Archivo_Ini = App.Path & "\config.ini"  
  67.  
  68.    ' Lee las Key y  Les envia el valor por defecto por si no existe  
  69.    m_Left = Leer_Ini(Path_Archivo_Ini, "Left", 0)  
  70.    m_Top = Leer_Ini(Path_Archivo_Ini, "Top", 0)  
  71.    m_Width = Leer_Ini(Path_Archivo_Ini, "Width", 5000)  
  72.    m_Height = Leer_Ini(Path_Archivo_Ini, "Height", 5000)  
  73.  
  74.    'Posiciona el formulario con los valores del archivo Ini  
  75.    Move m_Left, m_Top, m_Width, m_Height  
  76.  
  77. End Sub  
  78.  
  79. Private Sub Form_Unload(Cancel As Integer)  
  80.  
  81.    'Escribe en el archivo Ini  
  82.  
  83.    'Posición del Form  
  84.    Call Grabar_Ini(Path_Archivo_Ini, "Left", Me.Left)  
  85.    Call Grabar_Ini(Path_Archivo_Ini, "Top", Me.Top)  
  86.  
  87.    'Tamaño del formulario  
  88.    Call Grabar_Ini(Path_Archivo_Ini, "Width", Me.Width)  
  89.    Call Grabar_Ini(Path_Archivo_Ini, "Height", Me.Height)  
  90.  
  91. End Sub  
  92.  

porque en el evento load del form no se llama a la funcion Leer_Ini, mientras que en el evento Unload del form si se lo hace?

gracias


En línea

no me juzguen si no me conocen
Dessa


Desconectado Desconectado

Mensajes: 624



Ver Perfil
Re: Pregunta sobre un codigo
« Respuesta #1 en: 13 Octubre 2009, 03:39 am »


porque en el evento load del form no se llama a la funcion Leer_Ini, mientras que en el evento Unload del form si se lo hace?

gracias

Private Sub Form_Load()  
 
    'Path del fichero Ini  
    Path_Archivo_Ini = App.Path & "\config.ini"  
 
    ' Lee las Key y  Les envia el valor por defecto por si no existe  
    m_Left = Leer_Ini(Path_Archivo_Ini, "Left", 0)  
    m_Top = Leer_Ini(Path_Archivo_Ini, "Top", 0)  
    m_Width = Leer_Ini(Path_Archivo_Ini, "Width", 5000)  
    m_Height = Leer_Ini(Path_Archivo_Ini, "Height", 5000)  
 
    'Posiciona el formulario con los valores del archivo Ini  
    Move m_Left, m_Top, m_Width, m_Height  
 
End Sub  

Estas llamando 4 veces a la funcion leer_ini cuyo resultado es : Leer_Ini = Left$(bufer, Len_Value)


PD: Hay que leer_ini  mas   ;)  (va con onda)





« Última modificación: 13 Octubre 2009, 03:52 am por Dessa » En línea

Adrian Desanti
CH4ØZ

Desconectado Desconectado

Mensajes: 108



Ver Perfil
Re: Pregunta sobre un codigo
« Respuesta #2 en: 13 Octubre 2009, 04:08 am »

o sea
yo lo que quiero saber es xq en uno se usa la funcion call y en el otro se lo hace de otra forma?
se puede hacer de cualquier forma?
En línea

no me juzguen si no me conocen
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Pregunta sobre un codigo
« Respuesta #3 en: 13 Octubre 2009, 04:21 am »

o sea
yo lo que quiero saber es xq en uno se usa la funcion call y en el otro se lo hace de otra forma?
se puede hacer de cualquier forma?

es sencillo call esta hecho para procesos que por ende no devuelven valores de ningun tipo en vb6 pero las funciones si las devuelven y al llamarlas estas pueden devolver un valor , aunque ambas en este caso son funciones la de grabar no devuelve dato alguno por ello se puso call pero al leer la funcion devuelve un valor segun el caso sea en esas dos funciones

leerini <-- devuelve un valor
grabarini <. no devuelve pero igual puede ser llamada que leerini pero no se guardaria el valor leeido en ningun lugar se perderia.

Código
  1. public function mensaje() as string
  2.    mensaje="hola"
  3. end function
  4.  
  5. private sub form_load()
  6.    msgbox mensaje ' te dira Hola
  7.    call mensaje ' se perdera lo que devuelve dicha funcion xS
  8.    mensaje ' se perdera lo que devuelve dicha funcion xS
  9. end sub
  10.  

P.D.: hay que ver mejor el codigo por ejemplo este



Dulces Lunas
« Última modificación: 13 Octubre 2009, 04:26 am por ░▒▓BlackZeroҖ▓▒░ » En línea

The Dark Shadow is my passion.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pregunta sobre código
PHP
darkvidhack 4 2,098 Último mensaje 19 Agosto 2011, 00:49 am
por darkvidhack
(C++) Sobre la estructuración del código
Programación C/C++
amchacon 3 2,565 Último mensaje 11 Julio 2013, 11:17 am
por eferion
pregunta sobre el codigo QSS. (WPS)
Wireless en Windows
nightcode 0 1,893 Último mensaje 9 Junio 2018, 21:20 pm
por nightcode
[Pregunta]¿El Código de VB6 vale?
Programación Visual Basic
SonnyCrockett 9 2,976 Último mensaje 8 Diciembre 2018, 17:03 pm
por MCKSys Argentina
[Pregunta]: Pregunta rápida y sencilla sobre el siguiente código.
Desarrollo Web
Leguim 4 3,777 Último mensaje 14 Octubre 2020, 21:27 pm
por Leguim
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines