Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Leer Archivo .INI....

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Leer Archivo .INI.... Responder citando

Cree esta nueva consulta debido a que se puede confundir con la consulta de aplicación multilingue, ahi va mi duda:

He realizado es siguiente archivo .ini con la siguentes información como aconsejan aqui ("César"):

[espa]
boton1=salir
boton2=cerrar
[ingles]
boton1=Exit
boton2=close



Luego creo un proyecto y agrego lo siguiente:

#include <IniFiles.hpp>
TIniFile *Conf;

y luego en el FormCreate esto:

Conf=new TIniFile("C\\Builder\\ArchivosINI\\idioma.ini");

por consiguiente meto un boton y un edit en la forma y dentro del boton meto lo siguente:

Edit1->Text=Conf->ReadString("espa","boton1","No");

Mi duda es que siempre cuando presiono el boton me sale "No", mas no el valor de boton1 que debería ser "Salir". Agradecería q me ayudaran a solucionar esta duda ya que es la primera vez q trabajo con archivos .INI. Gracias por su atención.....
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Ya la encontré... Responder citando

Luego de mirar un buen rato mis archivos .INI del pc, vi que muchos de los texto estaban encerrados entre comillas dobles "xxxx", hize esa implementación y listo el pollo, funcionó:

[Espa]
Boton1="Salir"
Boton2="Cerrar"
[Ingles]
Boton1="Exit"
Boton2="close"
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: que pena por tantos mensajes... Responder citando

que pena por tantos mensajes, ahora mi duda q igualmente la venía con el tema anterior pero no la hice conocer es como poder abrir el archivo sin tener q escribir toda la ruta asi como la estoy haciendo yo:

Conf=new TIniFile("c:\\Builder\\ArchivosINI\\idioma.ini");

si no hacer como en HTML que uno pone ...NombreDelArchivo y q el programa sepa q esta es la misma carpeta del ejecutable.

Gracias por su info, perdonen las molestias..........
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Rta: Responder citando

La respuesta es clara despues de varios intentos:

[code]Conf=new TIniFile(".\\idioma.ini"); [/code]

Ahi va a las posibles personas q no puedan saber, gracias a todos, tschüss.....
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Gracias Miguel por publicar las soluciones a tus propias dudas, me ha servido mucho
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Hay un alternativa a usar los TIniFile, con las instrucciones WritePrivateProfileString y GetPrivateProfileString. Por ejemplo el fichero que usa Miguel Ángel en su ejemplo:
Cita:
[espa]
boton1=salir
boton2=cerrar
[ingles]
boton1=Exit
boton2=close

Podría grabarse y leerse de al siguiente forma:
Código:
WritePrivateProfileString(NULL, NULL, NULL, (ExtractFilePath(Application->ExeName) + "Idioma.ini").c_str());
WritePrivateProfileString("espa", "boton1"  , "Salir" , (ExtractFilePath(Application->ExeName) + "Idioma.ini").c_str());
WritePrivateProfileString("espa", "boton2"  , "Cerrar" , (ExtractFilePath(Application->ExeName) + "Idioma.ini").c_str());
WritePrivateProfileString("ingles", "boton1"  , "Exit" , (ExtractFilePath(Application->ExeName) + "Idioma.ini").c_str());
WritePrivateProfileString("ingles", "boton2"  , "Close" , (ExtractFilePath(Application->ExeName) + "Idioma.ini").c_str());

El primer WritePrivateProfileString, tal cual, crea el fichero ini con la vía y nombre que le indicamos al final. El resto de los WritePrivateProfileString van creando, si no existen, o modificando las diversas entradas del mismo.

Para rescatar los valores se usa GetPrivateProfileString. Por ejemplo:
Código:
GetPrivateProfileString("espa", "boton1", "Boton 1", cBoton1, sizeof(cBoton1)  , (ExtractFilePath(Application->ExeName) + "Idioma.ini").c_str());

Los parámetros del comando son:
    1. Sección del fichero ini a buscar (en este caso espa).
    2. Entrada de la sección (en este caso boton1).
    3. Valor por defecto si no se encontrara la entarda (en este caso Boton 1).
    4. Variable en la que se guardará el valor (cBoton1). Es de tipo char y hay que dimensionarla.
    5. Número de bits a leer; por defecto, yo tomo la dimensión definida.
    6. Vía y nombre fichero ini.

Y no me hacen falta las comillas. Como ejemplo, adjutno un fichero INI de una aplicación mia:
Cita:
[DATOS]
Entorno=D:\GesAfi3\GesAfi.ini
Tablas=D:\GesAfi3\Tablas\Afiliados.gdb
Seguridad=D:\GesAfi3\Copias\Seguridad.gdb

Este fichero está así, tal cual, sin comillas ni nada.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.