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 

Ficheros.ini

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

Mari, qué tal toda una clase como TIniFile o incluso TRegIniFile, y de paso, por si fuera también de tu interés TRegIniFile.

Con un conveniente F1, en la pestaña "Indice" te dará más información y ejemplos.

Un saludo,

Volver arriba
Mensaje    Asunto: Ficheros.ini Responder citando

En el foro he encontrado ejemplos de cómo escribir en un fichero,pero no de cómo leer las secciones de un fichero y eso es lo que quiero saber. En la ayuda de Builder he encontrado el listado de métodos del TIniFile y resulta que esta función (ReadSections) me la daba, pero no sé porqué me da una exepción de AccesViolation. En fin, que si alguien tiene algún ejemplo de cómo leer esas secciones se lo agradecería eternamente, porque tengo que entregar el protyecto y es lo único que me falla ya.

Repito, Gracias

Volver arriba
Mensaje    Asunto: Ficheros.ini Responder citando

¿Existe alguna función especial para leer ficheros .ini?
Volver arriba
Mensaje    Asunto: Ficheros.ini Responder citando

hola yo uso GetPrivateProfileString

char seccion[100] = "Seccion";
char nombre_busc1[100] = "Lo que busco";

char *defecto = directorio_actual
char buffer1[200];
unsigned long tam = 200;
char buf_fich[256];
strcpy(buf_fich,directorio_actual.c_str());
strcat(buf_fich,FICHERO_INI);
GetPrivateProfileString(seccion,nombre_busc1,defecto,buffer1,tam,buf_fich)
te lo devuelve en buffer1
espero que te sirva
para escribir es con
WritePrivateProfileString(seccion,nombre_busc1,buffer1,buf_fich);

Volver arriba
Mensaje    Asunto: Ficheros.ini Responder citando

Gracias por la respuesta anterior mgf.
Estoy utilizando el TIniFile de la siguiente forma:

//Declaración
TIniFile *Ini=new TIniFile("\\ficheroIni\\FicheroIni.ini");

//ahora intento leer las secciones que
//contiene:

Juegos->ReadSections(Claves);

y en este punto me da una excepción.

¿Alguien sabe por qué y qué podría hacer para solucionarla?

Volver arriba
Mensaje    Asunto: Ficheros.ini Responder citando

En mi anterior respuesta hemos coincidido en el tiempo.

Ahora te ahondo en la respuesta con una dirección que quizá te responda directamente:
http://www.borland.com/techpubs/bcppbuilder/v5/dg/2_design.html

Y te vuelco, como adelanto parte:

Usando TIniFile
(...) Cuando instancias el objeto IniFile, pasas como parámetro al constructor el nombre del fichero INI. Si el fichero no existe, se crea automáticamente. Puedes leer valores usando ReadString, ReadInteger, o ReadBool. Alternativamente, si quieres leer una sección completa del fichero INI, puedes usar el método ReadSection. Igualmente, puedes escribir valores con WriteBool, WriteInteger, o WriteString.

El siguiente ejemplo leer información de configuración de un fichero INI en un constructor del form y escribe valores en el manejador de eventos OnClose.

void __fastcall TForm1::TForm1(TObject *Sender)
{
TIniFile *ini;
ini = new TIniFile(
ChangeFileExt( Application->ExeName, ".INI" ) );

Top = ini->ReadInteger( "Form", "Top", 100 );
Left = ini->ReadInteger( "Form", "Left", 100 );
Caption = ini->ReadString( "Form", "Caption",
"Default Caption" );
ini->ReadBool( "Form", "InitMax", false ) ?
WindowState = wsMaximized :
WindowState = wsNormal;

delete ini;
}

void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
TIniFile *ini;
ini = new TIniFile(ChangeFileExt( Application->ExeName, ".INI" ) );
ini->WriteInteger( "Form", "Top", Top );
ini->WriteInteger( "Form", "Left", Left );
ini->WriteString ( "Form", "Caption", Caption );
ini->WriteBool ( "Form", "InitMax",
WindowState == wsMaximized );

delete ini;
}

Cada una de las rutinas Read asume tres parámetros. El primero identifica la sección del fichero INI. El segundo identifica el valor que quieres leer, y el tercero es un valor por defecto en caso de que la sección o el valor no exista existan en el fichero INI. Igualmente, las rutinas Write crearán la sección y/o valor si no existen. El ejemplo crea un fichero INI la primera vez que se ejecuta tal como este:

[Form]
Top=185
Left=280
Caption=Default Caption
InitMax=0

Tras la ejecución de esta aplicación, los valores INI se leen durante la creación del form y se escriben tras el evento OnClose.

Bueno, es "mi" traducción, pero como muestra que mejor caso.

Espero que te sirva! Smile

Un saludo,

Volver arriba
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.