PDA

Ver la Versión Completa : Editar ficheros .ini


rvinfo
01-09-2003, 14:07:10
¡Saludos amigos!.

Necesito algún componente que me permita abrir un fichero .ini y editarlo (separando las secciones de las líneas), también serviría algún programa en español al que le puedas indicar al ejecutarse qué fichero .ini ha de editar, ¿alguien sabe de dónde puedo descargar algo así?. Gracias.

__hector
01-09-2003, 15:06:06
Para trabajar con archivos Ini solo te basta incluir la unit inifiles en el uses de tu form, y asi tendrias un acceso completo para trabajar archivos .ini de una manera confortable.

En la ayuda de delphi puedes conseguir varios ejemplos de su uso que, por cierto, es bien sencillo.

Suerte!

rvinfo
01-09-2003, 16:31:23
Lo siento, no lo he explicado claramente, lo que necesito es un editor visual para que el usuario pueda abrir el fichero .ini donde está la configuración y que cambie lo que quiera, algo así como el programa que incluye windows que permite modificar win.ini. Por eso digo que me sirve un componente o un programa al que le pueda llamar pasando como parámetro la ruta. He visto algunas aplicaciones que están en inglés, como por ejemplo "Apini" y "wine0203", busco algo similar pero en español, o bien un componente para Delphi5.

De todos modos, Hector, gracias por interesarte y responder.

roman
01-09-2003, 18:18:29
La sugerencia de hector es más que suficiente ya que, si echas in vistazo a la documentación, notarás que es muy sencillo crear tu mismo el editor que deseas; a lo sumo te llevaría una tarde de programación.

Para que te des una idea de lo sencillo que es te pongo unos ejemplos:

El archivo ini lo almacenas en una variable de tipo TIniFile (de la unidad IniFiles) y lo abres así:

IniFile := TIniFile.Create('tuarchivo.ini');

El método ReadSections lee los nombres de todas las secciones y los coloca en una variable de tipo TStrings. Entonces, si tienes un ListBox en tu formulario bastará que pongas:

IniFile.ReadSections(ListBox.Items);

para cargar en el ListBox los nombres de las secciones.

Comforme el usuario de click en alguno de estos nombres usas el método ReadSectionValues para leer la lista de claves y valores en una variable de tipo TStrings. Por ejemplo, usaría el evento OnClick del listbox:


procedure TForm1.ListBoxClick(Sender: TObject);
var
Seccion: String;
Claves: TStringList;

begin
Seccion := ListBox.Items[ListBox.ItemIndex];

Claves:= TStringList.Create;
IniFile.ReadSectionValues(Seccion, Claves);

{ Trabajas con Claves }

Claves.Free;
end;


ReadSectionValues coloca en Claves cadenas de la forma

'clave=valor'

correspondientes a cada clave de la sección especificada. Entonces pudes usar las propiedades Names y Values de la variable Claves para acceder a las claves y los valores de forma separada. Dependiendo de la versión de Delphi que tengas hay una componente que se llama TValueListEditor que directamente te permite editar listas de este tipo de manera que puedes sustituire Claves por ValueListEditor.Strings y automáticamente tendrás llena una lista de claves y valores que el usuario puede editar. Si tu versión de Delphi no cuenta con esa componente es igualmente sencillo usar un ciclo for para llenar un stringgrid con las cadenas de la variable Claves (una columna para Names y otra para Values)

Con esto, en media hora tienes un visor de ficheros ini.

Faltaría la pate para guardar los cambios pero esto es igualmente sencillo usando los métodos WriteXXX del objeto IniFile.

Espero que estos comentarios te sirvan.

// Saludos

rvinfo
02-09-2003, 10:38:02
Saludos, me crearé mi propio componente cuando tenga un rato. Gracias por las respuestas y las ideas, pero sobretodo gracias por responder tan rápido.