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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Clase Ini totalmente funcional. (source)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Clase Ini totalmente funcional. (source)  (Leído 2,839 veces)
Zeroql


Desconectado Desconectado

Mensajes: 957


Todo lo k sucede sucede por una razon


Ver Perfil WWW
Clase Ini totalmente funcional. (source)
« en: 25 Mayo 2008, 17:23 pm »

buenas a todos los foreros
Les traigo una clase dedicada a leer y guardar en archivos .ini
bueno aki el code de la clase:

Código
  1. Option Explicit
  2.  
  3. 'Función api que recupera un valor-dato de un archivo Ini
  4. Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" ( _
  5.  ByVal lpApplicationName As String, _
  6.  ByVal lpKeyName As String, _
  7.  ByVal lpDefault As String, _
  8.  ByVal lpReturnedString As String, _
  9.  ByVal nSize As Long, _
  10.  ByVal lpFileName As String) As Long
  11.  
  12. 'Función api que Escribe un valor - dato en un archivo Ini
  13. Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" ( _
  14.  ByVal lpApplicationName As String, _
  15.  ByVal lpKeyName As String, _
  16.  ByVal lpString As String, _
  17.  ByVal lpFileName As String) As Long
  18.  
  19. 'Lee un dato _
  20. -----------------------------
  21. 'Recibe la ruta del archivo, la clave a leer y _
  22.  el valor por defecto en caso de que la Key no exista
  23.  
  24. Public Function Leer_Ini(Path_INI As String,Section as String, Key As String, Default As Variant) As String
  25.  Dim bufer As String * 256
  26.  Dim Len_Value As Long
  27.  Len_Value = GetPrivateProfileString(Section, Key, Default, bufer, Len(bufer), Path_INI)
  28.  Leer_Ini = Left$(bufer, Len_Value)
  29. End Function
  30.  
  31. 'Escribe un dato en el INI _
  32. -----------------------------
  33.  
  34. 'Recibe la ruta del archivo, La clave a escribir y el valor a añadir en dicha clave
  35. Public Function Grabar_Ini(Path_INI As String,Section as string, Key As String, Valor As Variant) As String
  36.   WritePrivateProfileString Secition, Key, Valor, Path_INI
  37. End Function

Para el formato del archivo ini se debe manejar asi:

[sección]
CLAVE1=VALOR
CLAVE2=VALOR
........


y para llamar a la funcion para leer el ini es:
Código
  1. ClaseIni.Leer_Ini("Dir del archivo ini","Sistema","CLAVE a leer","un Valor Default sino existe tal valor en el ini o 0")
  2.  

para guardar:
Código
  1. Claseini.Grabar_Ini("Dir del archivo ini","Config","Clave donde guardar el valor","Valor a guardar")

Nota: Los nombres mostrados anteriormente antes de llarmar a la funcion es el nombre de la clase
para una mejor compresion de esto miremos un ejemplo:

Vamoss a llamara a la clase por un valor del ini dada una configuracion:
variable=ClaseIni.leer_Ini("C:\windows","Config",1001,0)
variable=ClaseIni.leer_Ini("C:\windows","Window","NOOPEN","Holas")

Y para guardar:

ClaseIni.Grabar_Ini("C:\windows","Config",1001,1)
ClaseIni.Grabar_Ini("C:\windows","Window","NOOPEN","YES")


« Última modificación: 27 Mayo 2008, 17:56 pm por Zeroql » En línea

Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo.
/.-ZEROQL.-\   -----  #937675#

cobein


Desconectado Desconectado

Mensajes: 759



Ver Perfil WWW
Re: Clase Ini totalmente funcional. (source)
« Respuesta #1 en: 25 Mayo 2008, 17:30 pm »

@ Zeroql

Esto esta mal, la estructura del ini es sección, Clave, valor.

[sección]
CLAVE1=VALOR

en ese codigo tenes la sección como una constante :S

Edit: me retracto de lo anteriormente dicho, no esta mal puesto que es funcional, pero no esta bien implementado.


« Última modificación: 25 Mayo 2008, 17:47 pm por cobein » En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
Zeroql


Desconectado Desconectado

Mensajes: 957


Todo lo k sucede sucede por una razon


Ver Perfil WWW
Re: Clase Ini totalmente funcional. (source)
« Respuesta #2 en: 25 Mayo 2008, 18:14 pm »

UMMM puede ser, pero dejemoslo asi para los novatos. al fin y acabo que esta pensada para ellos.
En línea

Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo.
/.-ZEROQL.-\   -----  #937675#

naderST


Desconectado Desconectado

Mensajes: 625



Ver Perfil WWW
Re: Clase Ini totalmente funcional. (source)
« Respuesta #3 en: 25 Mayo 2008, 18:25 pm »

La mejor clase para los ini que he visto y usado es la de Cobein k por cierto Cobein deberias postearla aca  :P
En línea

Zeroql


Desconectado Desconectado

Mensajes: 957


Todo lo k sucede sucede por una razon


Ver Perfil WWW
Re: Clase Ini totalmente funcional. (source)
« Respuesta #4 en: 25 Mayo 2008, 18:40 pm »

puede ser
cobein posteala en aca para comparar y que los demas se escojan cual les parece mejor no te parece?
En línea

Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo.
/.-ZEROQL.-\   -----  #937675#

seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Clase Ini totalmente funcional. (source)
« Respuesta #5 en: 25 Mayo 2008, 18:59 pm »

@ Cobein

me parece que es solo un modulo normal,¿¿es la que usabamos en los widget??,pues bueno si es esa,funciona perfecto..

saludos.
En línea

Kizar


Desconectado Desconectado

Mensajes: 1.325


kizar_net


Ver Perfil
Re: Clase Ini totalmente funcional. (source)
« Respuesta #6 en: 25 Mayo 2008, 20:52 pm »

Lo he adaptado a mi manera:
Código:
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" ( _
    ByVal lpApplicationName As String, _
    ByVal lpKeyName As String, _
    ByVal lpDefault As String, _
    ByVal lpReturnedString As String, _
    ByVal nSize As Long, _
    ByVal lpFileName As String) As Long

Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" ( _
    ByVal lpApplicationName As String, _
    ByVal lpKeyName As String, _
    ByVal lpString As String, _
    ByVal lpFileName As String) As Long

Private iSection As String
Private iPath As String

Public Sub Set_Path(sPath As String)
    iPath = sPath
End Sub

Public Sub Set_Section(sSection As String)
    iSection = sSection
End Sub

Public Function Leer_Ini(key As String) As String
    Dim sBuffer As String * 256, lenValue As Long
    lenValue = GetPrivateProfileString(iSection, key, "", sBuffer, Len(sBuffer), iPath)
    Leer_Ini = Left(sBuffer, lenValue)
End Function
 
Public Function Grabar_Ini(key As String, valor As Variant) As String
    WritePrivateProfileString iSection, key, valor, iPath
End Function
« Última modificación: 25 Mayo 2008, 20:54 pm por Kizar » En línea

SKL (orignal)

Desconectado Desconectado

Mensajes: 259


UpLoadSourceCode


Ver Perfil WWW
Re: Clase Ini totalmente funcional. (source)
« Respuesta #7 en: 25 Mayo 2008, 22:45 pm »

anda a saber donde debe andar cobein jaja

aca les dejo la clase ini:http://www.uploadsourcecode.com.ar/d/gIgNKU7hqdXrTmUFV59HGUGruP5FeQb2

saludos
En línea

cobein


Desconectado Desconectado

Mensajes: 759



Ver Perfil WWW
Re: Clase Ini totalmente funcional. (source)
« Respuesta #8 en: 26 Mayo 2008, 11:05 am »

A ver, no nos saquemos los ojos, lo mio fuo una critia u observacion nada mas, hice una critica con su respectiva justificacion para que si el considera que es valedera corrija el code y aprenda de ello, nada mas, esto no es una competencia de nada, personalmente valoro su aporte.

Con respecto a lo que decian, el modulo que hice NO es mejor que nada, es simple y esta incompleto, es solamente lo que necesitaba, no tiene enumeracion ni muchas cosas mas que tendria que tener para ser considerado siquiera COMPLETO.
En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
Zeroql


Desconectado Desconectado

Mensajes: 957


Todo lo k sucede sucede por una razon


Ver Perfil WWW
Re: Clase Ini totalmente funcional. (source)
« Respuesta #9 en: 27 Mayo 2008, 18:05 pm »

Ya he modificado la clase gracias a la observacion de Cobein.
ya veran uds si les agrada o no, a mi me parece que esta muy completa y es algo pequeña. bueno al fin y al cabo el foro es para ayudar y opinar sobre los post.
al que le sirva bien.
y por sirto Kizar te muy kedo bien la modificacion.
En línea

Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo.
/.-ZEROQL.-\   -----  #937675#

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Programación funcional
Programación General
csp 5 3,362 Último mensaje 30 Octubre 2013, 01:03 am
por El Benjo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines