Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

ficheros ini en vs 2005

Estas en el tema de ficheros ini en vs 2005 en el foro de Visual Basic clásico en Foros del Web. hola a todos: alguien podria aclararme una duda: Private Sub Form_Load() Dim I As Integer Dim Est As String Est = space(50) I = GetPrivateProfileString("Ejemplo", ...
  #1 (permalink)  
Antiguo 16/05/2008, 03:53
 
Fecha de Ingreso: abril-2008
Mensajes: 16
Antigüedad: 16 años
Puntos: 0
ficheros ini en vs 2005

hola a todos:

alguien podria aclararme una duda:

Private Sub Form_Load()
Dim I As Integer
Dim Est As String
Est = space(50)
I = GetPrivateProfileString("Ejemplo", "Nombre", "", Est, Len(Est), "Ejemplo.ini")
If I > 0 Then
MsgBox("Tu Nombre es: " & Est)
End If
End Sub

¿donde pone ejemplo que es lo que hay que poner?
y ¿donde pone nombre?
...........

podria alguien escribirme esta frase con un ejemplo claro:

I = GetPrivateProfileString("Ejemplo", "Nombre", "", Est, Len(Est), "Ejemplo.ini")

muchas gracias.
un saludo a todos.
  #2 (permalink)  
Antiguo 16/05/2008, 13:22
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Respuesta: ficheros ini en vs 2005

Código:
 
I = GetPrivateProfileString("Ejemplo", "Nombre", "", Est, Len(Est), "Ejemplo.ini")
Cuando ejecutas ese código se lee lo que está en el archivo Ejemplo.ini, cuyo contenido sería:
Código:
 
[Ejemplo]
Nombre=David
En ese caso la función devolvería David...
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 19/05/2008, 01:33
 
Fecha de Ingreso: abril-2008
Mensajes: 16
Antigüedad: 16 años
Puntos: 0
Mensaje Respuesta: ficheros ini en vs 2005

ok, pero una cosilla al final se pone el nombre del fichero, donde tiene que estar, en la carpeta del programa, en la unidad 'c' o donde.

gracias por la informacion anterior.
  #4 (permalink)  
Antiguo 19/05/2008, 10:21
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Respuesta: ficheros ini en vs 2005

Cita:
Iniciado por jocormix Ver Mensaje
ok, pero una cosilla al final se pone el nombre del fichero, donde tiene que estar, en la carpeta del programa, en la unidad 'c' o donde.

gracias por la informacion anterior.
Lo mejor es que le especifiques la ruta completa del archivo...
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 20/05/2008, 01:30
 
Fecha de Ingreso: abril-2008
Mensajes: 16
Antigüedad: 16 años
Puntos: 0
Mensaje Respuesta: ficheros ini en vs 2005

hola david:

gracias por la ayuda anterior.
cuando ejecuto mi programa me aparece un msgbox que dice: "tu nombre es:", pero sigue sin ponerme el nombre.

este es mi codigo:

Module Module1
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

Sub Main()
Dim I As Long
Dim Est As String
Est = Space(50)
I = GetPrivateProfileString("Ejemplo", "Nombre", "", Est, Len(Est), "C:\Apl.ini")
If I > 0 Then
MsgBox("Tu Nombre es: " & Est)
End If
End Sub

End Module

y este es fi fichero .ini:

[Ejemplo]
Nombre = jose

gracias.
un saludo.
  #6 (permalink)  
Antiguo 20/05/2008, 06:25
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: ficheros ini en vs 2005

No sé por qué no te funciona, a mí me funcionó sin problema. Intenta ejecutar paso a paso a ver qué pasa...
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 21/05/2008, 01:19
 
Fecha de Ingreso: abril-2008
Mensajes: 16
Antigüedad: 16 años
Puntos: 0
Respuesta: ficheros ini en vs 2005

al ejecutarlopaso a paso lo que pasa es que la cadena EST sigue vacia todo el rato.
¿por que puede ser?

gracias David
  #8 (permalink)  
Antiguo 23/05/2008, 11:25
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: ficheros ini en vs 2005

Cita:
Iniciado por jocormix Ver Mensaje
al ejecutarlopaso a paso lo que pasa es que la cadena EST sigue vacia todo el rato.
¿por que puede ser?

gracias David
¿Qué valor te devuelve GetPrivateProfileString?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 26/05/2008, 01:19
 
Fecha de Ingreso: abril-2008
Mensajes: 16
Antigüedad: 16 años
Puntos: 0
Respuesta: ficheros ini en vs 2005

el valor de I es un long int y en EST me crea el espacio para introducir el nombre pero no lo introduce.

¿que puede ser?
gracias. un saludo.
  #10 (permalink)  
Antiguo 27/05/2008, 06:35
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: ficheros ini en vs 2005

Cita:
Iniciado por jocormix Ver Mensaje
el valor de I es un long int y en EST me crea el espacio para introducir el nombre pero no lo introduce.

¿que puede ser?
gracias. un saludo.
Me refería a si te devuelve valor 0 o no. Otra cosa, debes asegurarte que exista el archivo *.ini que le estás indicando.
No sé qué pueda ser, pues como te mencioné, en mi caso funciona.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #11 (permalink)  
Antiguo 28/05/2008, 03:08
 
Fecha de Ingreso: abril-2008
Mensajes: 16
Antigüedad: 16 años
Puntos: 0
Mensaje Respuesta: ficheros ini en vs 2005

devuelve un valor largo asi como:23475857......

el fichero ini existe en la ruta indicada.

porcierto en esta parte del codigo:

I = GetPrivateProfileString("Ejemplo", "Nombre", "", Est, Len(Est), "C:\Apl.ini")

¿en las comillas q estan vacias no hay que poner nada?

muchas gracias.
un saludo.
  #12 (permalink)  
Antiguo 28/05/2008, 03:38
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: ficheros ini en vs 2005

No, el problema no es el tercer parámetro, puede ir en blanco o "Default", pero dá lo mismo.

Mira, abre el archivo Apl.ini con cualquier editor de texto y copia aquí a continuación, todo lo que está escrito.

  #13 (permalink)  
Antiguo 28/05/2008, 03:51
 
Fecha de Ingreso: abril-2008
Mensajes: 16
Antigüedad: 16 años
Puntos: 0
Mensaje Respuesta: ficheros ini en vs 2005

este es el fichero:

[Ejemplo]
Nombre = jose
  #14 (permalink)  
Antiguo 28/05/2008, 04:19
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: ficheros ini en vs 2005

intenta cambiando el código de asignación a la variable "Est":

Est = New String(Chr(0), 255)

Por lo demás todo parece estar bien.


  #15 (permalink)  
Antiguo 30/05/2008, 01:25
 
Fecha de Ingreso: abril-2008
Mensajes: 16
Antigüedad: 16 años
Puntos: 0
Mensaje Respuesta: ficheros ini en vs 2005

aunque ponga eso, pasa lo mismo.
aparece un mensaje en el que pone:

su nombre es:

pero no pone el nombre.
muchas gracias por todo.
si alguien tiene una idea y puede echarme una mano se lo agradeceria.

un saludo.
  #16 (permalink)  
Antiguo 31/05/2008, 05:23
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: ficheros ini en vs 2005

Hola de nuevo,

dándole vueltas al tema me encontré con que hay que declarar dos veces la misma función, solamente cambiando la asignación del parámetro "lpKeyName". Y lo curioso es que una vez ejecutado el proyecto, puedes borrar la segunda declaración y funciona igual.

MS no dá información sobre el tema (al menos yo no encontré nada), pero creo que debe ser porque "GetPrivateProfileString" está en uso solamente por compatibilidad con 16 bits.

Bueno, te pongo el ejemplo que a mi me ha funcionado (yo lo puse en la clase del Form1).

Código:
Public Class Form1
    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 Integer, ByVal lpFileName As String) As Integer
    ' La siguiente declaración la puedes eliminar una vez que hayas ejecutado el proyecto
    Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Integer, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
    
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim Est As String = New String(Chr(0), 255)
        Dim i As Long = GetPrivateProfileString("Ejemplo", "Nombre", "", Est, Len(Est), "C:\test.ini")
        If i > 0 Then
            MsgBox("Tu Nombre es: " & Est)
        End If
    End Sub
End Class
Espero que te sirva.

  #17 (permalink)  
Antiguo 03/06/2008, 02:01
 
Fecha de Ingreso: abril-2008
Mensajes: 16
Antigüedad: 16 años
Puntos: 0
Mensaje Respuesta: ficheros ini en vs 2005

muchas gracias avellaneda.

ya funciona.

asta otra.

un saludo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:53.