none
alternativas a ficheros .ini RRS feed

  • Pregunta

  • Hola a todos...

    Estoy haciendo una app y necesito que inicie con los últimos valores en los componentes de la última ejecución del programa. Recuerdo que se usaba antes, los ficheros .ini, pero en .net no está incluida, ahora leí en la ayuda de .net sobre archivos de configuración, pero me confunde mucho, quizás por su amplio ámbitos de uso, también leí sobre .toml una alternativa a .ini pero mejorada... Alguien puede ayudarme con un ejemplo con un windowsform y los archivos de configuración de .net o con toml.

    Gracias de antemano.

    martes, 24 de noviembre de 2020 16:21

Respuestas

  • Los .ini, como poderse, se pueden usar en .Net. Basta con usar P/Invoke para llamar a las APIs de Windows que manejan los .ini. Si tuvieras que hacerlo partiendo de cero sería bastante complejo, pero por suerte no es difícil encontrar código de ejemplo con estas declaraciones para copiar y pegar.

    Pero esto está ya bastante obsoleto. Lo que deberías usar son los Settings.Settings que ya vienen "de fábrica" en un proyecto de Windows Forms de .Net. Internamente se salvan en un fichero xml por debajo de la carpeta de documentos del usuario, pero esto es transparente para ti al programar. Simplemente llamas a Settings.Default para leer o grabar los Settings, después de configurarlos haciendo doble-click en Settings.Settings debajo de Properties en el proyecto.

    Enlace a la documentación.

    Si quieres un ejemplo, puedes descargar este proyecto de GitHub:

    https://github.com/AlbertoPoblacion/SalvarUbicacionFormulario

    Es un programa que salva en los Settings la última ubicación del formulario, y luego cuando vuelves a iniciar el programa lo restaura a su posición anterior. No hagas caso de todo el "lío" que tiene para manipular la posición de los formularios, lo importante es fijarte en donde llama a Properties.Settings.Default.UbicacionesFormulariosSerializadas, que es donde lee o graba los valores en los Settings. Este programa lo que graba son unos datos serializados, pero no te líes por eso. Al final es un simple string lo que está salvando en los settings, con independencia de lo complicado que sea el proceso que da lugar al contenido de ese string.


    martes, 24 de noviembre de 2020 19:23
    Moderador

Todas las respuestas

  • Los .ini, como poderse, se pueden usar en .Net. Basta con usar P/Invoke para llamar a las APIs de Windows que manejan los .ini. Si tuvieras que hacerlo partiendo de cero sería bastante complejo, pero por suerte no es difícil encontrar código de ejemplo con estas declaraciones para copiar y pegar.

    Pero esto está ya bastante obsoleto. Lo que deberías usar son los Settings.Settings que ya vienen "de fábrica" en un proyecto de Windows Forms de .Net. Internamente se salvan en un fichero xml por debajo de la carpeta de documentos del usuario, pero esto es transparente para ti al programar. Simplemente llamas a Settings.Default para leer o grabar los Settings, después de configurarlos haciendo doble-click en Settings.Settings debajo de Properties en el proyecto.

    Enlace a la documentación.

    Si quieres un ejemplo, puedes descargar este proyecto de GitHub:

    https://github.com/AlbertoPoblacion/SalvarUbicacionFormulario

    Es un programa que salva en los Settings la última ubicación del formulario, y luego cuando vuelves a iniciar el programa lo restaura a su posición anterior. No hagas caso de todo el "lío" que tiene para manipular la posición de los formularios, lo importante es fijarte en donde llama a Properties.Settings.Default.UbicacionesFormulariosSerializadas, que es donde lee o graba los valores en los Settings. Este programa lo que graba son unos datos serializados, pero no te líes por eso. Al final es un simple string lo que está salvando en los settings, con independencia de lo complicado que sea el proceso que da lugar al contenido de ese string.


    martes, 24 de noviembre de 2020 19:23
    Moderador
  • ok le dare un vistazo y luego les digo, gracias
    miércoles, 25 de noviembre de 2020 18:36
  • Hola cl2raul66, 

      

    ¿Alguna novedad sobre la consulta realizada? ¿Han sido útiles las  respuestas proporcionadas?  

    Espero su respuesta.  

    Gracias por usar los foros de MSDN.  

    Andres Aguilar 

    ____________________________  

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN sientase en la libertad de contactar  MSDNFSF@microsoft.com. 

    viernes, 27 de noviembre de 2020 21:24
    Moderador