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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Usar archivos .ini
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Usar archivos .ini  (Leído 1,581 veces)
ranslsad


Desconectado Desconectado

Mensajes: 492


Dim Ranslsad as String * :P - Que Vicio!


Ver Perfil WWW
Usar archivos .ini
« en: 10 Agosto 2006, 00:47 am »

Hola amigos, yo lo que quiero es aprender a crear, modificar y leer archivos .ini, me explico con un ejemplo:

Tengo un text1.text y ese text esta vacio... pero al cargar el form lee el archivo .ini (en el ini pone Text1 = asd) y en el text 1 del form pone "asd" y si se modifica en el form que se guarde en el ini otra vez.... me explico?

Y otra cosa mas... como puedo hacer que cuando se ejecute mi aplicacion salga como un form presentacion... miren este ejemplo: http://foro.elhacker.net/index.php/topic,131856.0.html cuando se inicia el exe sale un form "raro" que dice los creditos....

Bueno desde ya Gracias ;)

Salu2

Ranslsad


« Última modificación: 10 Agosto 2006, 01:03 am por ranslsad » En línea

_Sergi_


Desconectado Desconectado

Mensajes: 842



Ver Perfil
Re: Usar archivos .ini
« Respuesta #1 en: 10 Agosto 2006, 18:07 pm »

Aqui tienes, ligeramente comentado como utilizar las API GetPrivateProfileString y WritePrivateProfileString para usar archivos INI.

En un modulo Bas ponemos el siguiente codigo
Código:
'Declaración de las funciones API's para escribir y leer archivos INI.
Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long

'Función para leer los datos en archivos INI:
Public Function INI_Read(Filename As String, Key_Value As String, Key_Name As String, Optional ByVal Default As String) As String
'On Error GoTo ErrOut
Dim Size As Integer
Dim value As String

'Comprobamos que el archivo existe.
If Not SYS_FileExists(Filename) Then Err.Raise 53

'Se define el tamaño maximo de caracteres
'que podra tener la variable Value
value = Space(200)
'Se utiliza la función para obtener
'el valor de la clave
Size = GetPrivateProfileString(Key_Value, Key_Name, "", value, Len(value), Filename)
'Si el tamaño es mayor a -1 entonces
'se ha encontrado el valor de la clave
If Size > 0 Then
value = Left$(value, Size)
Else
INI_Read = Default
End If

'Devolver el dato...
'Verificar que el dato no sea nulo,
'en caso de ser nulo de se devuelve
'el valor por defecto (Default)
If Len(value) Then
INI_Read = value
Else
INI_Read = Default
End If
Exit Function

ErrOut:
INI_Read = Default
End Function

'Función para escrbir datos en archivos INI.
Public Function INI_Write(Filename As String, Key_Value As String, Key_Name As String, value As String) As Long
'On Error GoTo ErrOut
Dim Size As Integer

'Escribimos el valor de la clave en el INI
Size = WritePrivateProfileString(Key_Value, Key_Name, value, Filename)
INI_Write = 1
Exit Function

ErrOut:
INI_Write = 0
End Function


'Para usarlo
'Si nuestro archivo Ini ( Config.Ini ) es asi
[General]
Ruta="C:Sistema"
BaseDatos="Clientes.Mdb"

'En nuestro programa hacemos asi:
cRutaActual = INI_Read("Config.ini", "General", "Ruta", "C:")
cBaseDatos = INI_Read( "Config.Ini", "General", "BaseDatos", "Data.Mdb" )

Un saludo


En línea

Proyecto de Ingeniero
Castord

Desconectado Desconectado

Mensajes: 60



Ver Perfil
Re: Usar archivos .ini
« Respuesta #2 en: 11 Agosto 2006, 01:05 am »

Un codigo usando apis es innecesario para una operacion en la que podes usar lectura y descomposicion de cadenas.
Mi Opinion Particular.
En línea

Desde Asunción - Paraguay
/*Es una ***** pero igual amo mi país!*/
ranslsad


Desconectado Desconectado

Mensajes: 492


Dim Ranslsad as String * :P - Que Vicio!


Ver Perfil WWW
Re: Usar archivos .ini
« Respuesta #3 en: 12 Agosto 2006, 19:35 pm »

Un codigo usando apis es innecesario para una operacion en la que podes usar lectura y descomposicion de cadenas.
Mi Opinion Particular.


Hola, podrias poner algun ejempolillo es que no se mucho sobre eso :D

Salu2

Ranslsad
En línea

SheKeL_C$


Desconectado Desconectado

Mensajes: 549


_-=[Sh3K3L_C$]=-_


Ver Perfil
Re: Usar archivos .ini
« Respuesta #4 en: 14 Agosto 2006, 22:03 pm »

Yo t lo voy a decir sin apis..

X ejemplo tengo un programa q al ejecutarse coloca en el text1 el puerto local.. es x poner un ejemplo tu puedes utilizarlo para lo k kieras

Código:
Private Sub Form_Load()
On Error GoTo fuera

Dim cadena As String
Dim separa As Variant

Open App.Path & "\Configuracion.ini" For Input As #1
    While Not EOF(1)
        Line Input #1, cadena
        separa = Split(cadena, ":")
        If separa(0) = "LocalPort" Then Text1.Text = separa(1)
        'Esto solo lee el archivo y lo pone en el programa
    Wend
Close #1

fuera:
End Sub

Private Sub Form_Unload(Cancel As Integer)

Open App.Path & "\Configuracion.ini" For Output As #1
    Print #1, "LocalPort:" & Text1.Text
    'y aki lo escribe al cerrar
Close #1

End Sub

Creo q la idea esta explicada

Lo del form de creditos es un form normal

Código:
'Tienes k tener 2 form
Private Sub Form_Load()
Me.BorderStyle = 0
Timer1.Interval = 3000 'cuando pasan 3 segundos se cierra
End Sub

Private Sub Timer1_Timer()
Me.Hide
Form2.Show
End Sub
En línea

ranslsad


Desconectado Desconectado

Mensajes: 492


Dim Ranslsad as String * :P - Que Vicio!


Ver Perfil WWW
Re: Usar archivos .ini
« Respuesta #5 en: 15 Agosto 2006, 01:24 am »

Hola, SheKeL_C$ muchisimas gracias me as resuelto el problema de la mejor forma y mas sencilla!!
para txt es igual? porke lo probe y no funka mira:
Código:
Private Sub Form_Load()
On Error GoTo fuera

Dim cadena As String
Dim separa As Variant

Open App.Path & "\Configuracion.txt" For Input As #1
    While Not EOF(1)
        Line Input #1, cadena
        separa = Split(cadena, ":")
        If separa(0) = "Chau" Then Text1.Text = separa(1)
        'Esto solo lee el archivo y lo pone en el programa
    Wend
Close #1

fuera:
End Sub

Private Sub Form_Unload(Cancel As Integer)

Open App.Path & "\Configuracion.txt" For Output As #1
    Print #1, "Chau:" & Text1.Text
    'y aki lo escribe al cerrar
Close #1

End Sub

tambien cuando en el .ini pongo x ejemplo
Código:
ip:
LocalPort
me sale error :S
solo sirve para una linea?

desde ya... Gracias!!

Salu2

Ranslsad
« Última modificación: 15 Agosto 2006, 01:34 am por ranslsad » En línea

kuki06

Desconectado Desconectado

Mensajes: 20


Ver Perfil
Re: Usar archivos .ini
« Respuesta #6 en: 15 Agosto 2006, 04:52 am »

Yo (newbie en vb6) me "ingenie" una "funcion" para obtener datos desde un archivo y "hacer" algo con ellos :P
Ademas, no necesariamente necesitaras hacer un .ini o .txt, sino la extensión que tu quieras :P

Aca, mas o menos, te lo adapto a lo que vos queres
Código:
Private Sub Form_Load()

Ruta = "Tu Ruta" 'por ej: "C:\Archivo.ini"

On Error Resume Next

x = GetAttr(Ruta)

    Dim file As String
    Dim Msg As String
   
    Dim fileno As Integer
    Dim i As Integer
   
    Dim t(10000000) As Byte
   
    file = Ruta
    fileno = FreeFile()
   
    Open file For Binary As fileno
        For i = 1 To FileLen(file)
            Get fileno, i, t(i)
            Msg = Msg + Chr(t(i))
        Next
    Close fileno
   
    Text1.Text = Msg 'Textbox donde ira toda la "data"
End Sub

Eso seria para que cuando inicie el form se vuelque la "data" al textbox

Ahora, para hacer que cuando cierre guarde la "data" es lo siguiente:

Código:
Private Sub Form_Unload(Cancel As Integer)

Ruta = "Ruta" (si, otra vez xD)

Canal = Freefile
Open Ruta For output as #canal
Print #canal, text1.text 'Textbox donde estara la "data" para guardar
Close #canal
End sub

Aclaro, que los codigos no son los mas perfectos, ya que muchos conocimientos no tengo, pero son "buenos" por asi decirlo jeje

Saludos!
En línea

SheKeL_C$


Desconectado Desconectado

Mensajes: 549


_-=[Sh3K3L_C$]=-_


Ver Perfil
Re: Usar archivos .ini
« Respuesta #7 en: 15 Agosto 2006, 09:42 am »

En el *.ini o en el *.txt tiene k estar escrito como "LocalPort:6969" y la siguiente linea tiene q venir las siguientes ya sea "Nombre:yo".
(todo eso pero sin comillas)


Y en el code tienes q agregar mas lineas
Código:
Open App.Path & "\Configuracion.txt" For Input As #1
    While Not EOF(1)
        Line Input #1, cadena
        separa = Split(cadena, ":")
        If separa(0) = "LocalPort" Then Text1.Text = separa(1)
        If separa(0) = "Nombre" Then Text2.Text = separa(1)
    Wend
Close #1

P.D: en el ini t vuelvo a recordar q debe de estar primero el nombre de lo k es, luego separado de los dos puntos y luego la variable
En línea

ranslsad


Desconectado Desconectado

Mensajes: 492


Dim Ranslsad as String * :P - Que Vicio!


Ver Perfil WWW
Re: Usar archivos .ini
« Respuesta #8 en: 15 Agosto 2006, 16:22 pm »

Hola, muchas gracias por toda la informacion brindada, pero como podria hacer para que se lea el archivo.txt en distintos textbox.. me explico con un ejemplo
En el archivo.txt pone:
Código:
IP:10
LocalPort:10

y yo necesitaria que en dos textbox de un form cargue en el text 1 ip y en el text2 localport entienden?

Bueno... desde ya gracias :D

Salu2

Ranslsad
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

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