sep 302010
 

Buenas,

Vimos en un mensaje anterior la clase TIniFiles, la cual nos permite el acceso fácil a los ficheros de configuración. Cuando en una aplicación se hace mucho uso de este tipo de ficheros, en hecho de tener que estar todo el rato escribiendo las mismas líneas de código para crear y destruir un objeto de la clase TIniFile puede llegar a ser cansino. Lo que haremos ahora es crearnos nuestra propia clase que manipule un objeto de tipo TIniFile.

Los métodos de la nueva clase pueden llegar a ser los mismos que los que tiene TIniFile, no obstante podemos poner los que queramos o necesitemos.

Vamos a llamar a esta nueva clase TFicherosIni y la idea es crear una variable global de la unit de este tipo y controlar su creación y destrucción en la inicialización (initialization) y finalización (finalization) de la misma respectivamente.

unit FicherosIni;

interface

type
  TFicherosIni = class
  ....
  end;

var
  Ini: TFicherosIni;

implementation
.....

initialization
  Ini := TFicherosIni.Create;

finalization
  FreeAndNil(Ini);

end.

Con esto, sólo necesitaremos poner en la cláusula uses del formulario que queramos usarlo la llamada a esta unit y usar directamente el objeto Ini.

Tengo la costumbre de que los archivos ini se llamen igual que la aplicación que los usa, así pues, la clase TFicherosIni tiene una propiedad llamada NameExe la cual, al asignarse, automáticamente se asocia el fichero ini. No obstante, dado que no siempre es así, también dispone del método SetFileIni para especificar uno en concreto.

Aquí podéis descargaros la unit así como una demo de su uso.

Espero que os sea de utilidad.

Nos leemos

  3 Responses to “Facilitando el acceso a ficheros ini”

  1. Que tal Xavier, muy interesante tu clase y muy buena, solo comentarte un detalle en el llamado de la función SetStrValue, la propiedad Cells es 0-based.


    Ini.SetStrValue(StringReplace(pcPages.Pages[i].Caption, ‘_’, ‘ ‘, [rfReplaceAll, rfIgnoreCase]),
    (pcPages.Pages[i].Controls[0] as TValueListEditor).Cells[0,j], //Primer columna = 0
    (pcPages.Pages[i].Controls[0] as TValueListEditor).Cells[1,j] //Segunda columna = 1
    );

    Salud OS

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)