 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Miguel Angel Torres Master


Registrado: 23 Abr 2006Mensajes: 282Ubicación: Siegen, Alemania
|
Publicado: Sab 06 May, 2006 3:54 pm Asunto: Leer Archivo .INI.... |
|
|
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 |
|
 |
Miguel Angel Torres Master


Registrado: 23 Abr 2006Mensajes: 282Ubicación: Siegen, Alemania
|
Publicado: Sab 06 May, 2006 4:13 pm Asunto: Ya la encontré... |
|
|
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 |
|
 |
Miguel Angel Torres Master


Registrado: 23 Abr 2006Mensajes: 282Ubicación: Siegen, Alemania
|
Publicado: Sab 06 May, 2006 4:19 pm Asunto: que pena por tantos mensajes... |
|
|
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 |
|
 |
Miguel Angel Torres Master


Registrado: 23 Abr 2006Mensajes: 282Ubicación: Siegen, Alemania
|
Publicado: Sab 06 May, 2006 6:30 pm Asunto: Rta: |
|
|
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 |
|
 |
a3093 Lt


Registrado: 27 May 2004Mensajes: 97Ubicación: Las Palmas de Gran Canaria
|
Publicado: Mar 31 Jul, 2007 8:04 am Asunto: |
|
|
| Gracias Miguel por publicar las soluciones a tus propias dudas, me ha servido mucho |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mar 31 Jul, 2007 11:22 am Asunto: |
|
|
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 |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|