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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  [Aporte] mINI.bas - Guardar Variables en un Archivo INI. Permite Multilinea
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Aporte] mINI.bas - Guardar Variables en un Archivo INI. Permite Multilinea  (Leído 3,648 veces)
agus0


Desconectado Desconectado

Mensajes: 360



Ver Perfil
[Aporte] mINI.bas - Guardar Variables en un Archivo INI. Permite Multilinea
« en: 24 Noviembre 2010, 03:22 am »

Hola Gente del Foro en vista de lo que alguien Pide mas abajo subo este code que hice cuando empece a programas hace unos años por eso esta medio des prolijo :P pero es muy funcional...

Código
  1. Option Explicit
  2. 'Función api que recupera un valor-dato de un archivo Ini
  3. 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
  4. 'Función api que Escribe un valor - dato en un archivo Ini
  5. 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
  6. Private Const CODENL = "<?%!-/#¿>"
  7.  
  8. Public Function Leer_Ini(Key As String, Default As Variant, Optional Aplicacion As String, Optional Path_INI As String) As String
  9.    Dim Aplicacion_Ini As String
  10.    Dim Path__Ini As String
  11.    If Aplicacion = "" Then
  12.        Aplicacion_Ini = "INI-EXAMPLE" 'Nombre de la INI
  13.    Else
  14.        Aplicacion_Ini = Aplicacion
  15.    End If
  16.    If Path_INI = "" Then
  17.        Path__Ini = "C:\Archivo_INI" 'Path De la INI
  18.    Else
  19.        Path__Ini = Path_INI
  20.    End If
  21.    Dim bufer As String * 256
  22.    Dim Len_Value As Long
  23.    Len_Value = GetPrivateProfileString(Aplicacion_Ini, Key, Default, bufer, Len(bufer), Path__Ini)
  24.    Leer_Ini = Left$(bufer, Len_Value)
  25.    Leer_Ini = Replace(Leer_Ini, CODENL, vbNewLine)
  26. End Function
  27.  
  28. Public Function Grabar_Ini(Key As String, Valor As Variant, Optional Aplicacion As String, Optional Path_INI As String) As String
  29.    Dim Aplicacion_Ini As String
  30.    Dim Path__Ini As String
  31.    If Aplicacion = "" Then
  32.        Aplicacion_Ini = "INI-EXAMPLE" 'Nombre de la INI
  33.    Else
  34.        Aplicacion_Ini = Aplicacion
  35.    End If
  36.    If Path_INI = "" Then
  37.        Path__Ini = "C:\Archivo_INI" 'Path De la INI
  38.    Else
  39.        Path__Ini = Path_INI
  40.    End If
  41.    Valor = Replace(Valor, vbNewLine, CODENL)
  42.    WritePrivateProfileString Aplicacion_Ini, Key, Valor, Path__Ini
  43. End Function
  44.  

Deje la variable "Path__INI" al igual que "Aplicacion_INI" en la función por que por lo general cuando yo uso las INI uso un solo "Nombre de aplicación" y una sola ubicación que por lo general es una variable del entorno así que es mas cómodo.
Ademas remplazo los "Saltos de linea(vbNewLine)" por el codigo "<?%!-/#¿>" para hacer asi compatible a la INI con multilinea
si no les gusta modifiquen lo como quieran. espero que a alguien le sirva. Gracias


En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.419


Se siente observado ¬¬'


Ver Perfil
Re: [Aporte] mINI.bas - Guardar Variables en un Archivo INI. Permite Multilinea
« Respuesta #1 en: 24 Noviembre 2010, 12:36 pm »

Y si quiero poner "<?%!-/#¿>" en mi texto? :laugh: :laugh:, nah, solo lo pondria por joder :P

Buen aporte, yo hice uno similar, pero trabajando directamente con el archivo y manejando yo los tags, sin APIs...

No me gusta eso de que si no pones nada lo elija la funcion, creo que deberia devolver False y punto... Añades codigo innecesario...


En línea

F3B14N

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Re: [Aporte] mINI.bas - Guardar Variables en un Archivo INI. Permite Multilinea
« Respuesta #2 en: 24 Noviembre 2010, 16:39 pm »

Hay 2 apis nativas @NTDLL para hacer lo mismo  :-*
En línea

79137913


Desconectado Desconectado

Mensajes: 1.169


4 Esquinas


Ver Perfil WWW
Re: [Aporte] mINI.bas - Guardar Variables en un Archivo INI. Permite Multilinea
« Respuesta #3 en: 24 Noviembre 2010, 19:43 pm »

HOLA!!!

Pregunta de ignorante, que diferencia tengo en guardar las variables en un *.ini a un archivo de texto plano que no sea *.ini .
Por que yo, en mis programas me manejo con un archivo de texto variables.hip en el cual mediante el index del item me doy cuenta que variable es (leo mediante input).

GRACIAS POR LEER!!!
En línea

"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*
agus0


Desconectado Desconectado

Mensajes: 360



Ver Perfil
Re: [Aporte] mINI.bas - Guardar Variables en un Archivo INI. Permite Multilinea
« Respuesta #4 en: 25 Noviembre 2010, 02:02 am »

@Karcrack: si queres poner "<?%!-/#¿>" en tu variable cabias la constante code por ""<?%!-||||||||||||||||||||||||||||||||||||||||||||||||/#¿>" y listo :P Jaja

Jajaja me parece que lo vi al tuyo. era "mConfig". NO? esta bueno.

@F3B14N: Mira vos.. No sabia. Después lo busco. Gracias!!

@79137913: Creo que ninguna no se, depende tu code, cada uno use el que mas le guste jajaja
En línea

BlackZeroX (Astaroth)
Wiki

Desconectado Desconectado

Mensajes: 3.144


I'Love...!¡.


Ver Perfil WWW
Re: [Aporte] mINI.bas - Guardar Variables en un Archivo INI. Permite Multilinea
« Respuesta #5 en: 25 Noviembre 2010, 02:24 am »

Hay 2 apis nativas @NTDLL para hacer lo mismo  :-*

Podrias poner aun que sea el nombre de dichas APIS... espero que te refieras a las que permitan multilinea... no lo creo pero bueno xP

Dulces Lunas!¡.
En línea




CScript (Actualizado 26/06/2013).

FileX <-- Re-modelando...
Web Principal-->[ Blog(VB6/C/C++) | Host File | Scan Port) ]

The Dark Shadow is my passion.
El infierno es mi Hogar, mi novia es Lilit y el metal mi relig
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines