En agradecimiento a muchos que han colaborado doy este pequeño aporte con los conocimientos adquiridos de los participantes de este Club.
Digamos que el archivo de texto Inicio.ini es el de configuración general de la aplicación y contiene lo siguiente
Código:
[Configuracion]
udl=db1.udl
y que el archivo de texto Bases.ini contiene los siguiente:
Código:
[BD]
udl1=db1.udl
udl2=db2.udl
udl3=db3.udl
udl4=db4.udl
Donde [BD] es una sección y donde
udl=db1.udl es una variable con un valor asignado y así con cada udl#=db#.udl que indica los archivos .udl de configuración de acceso a Bases de Datos.
Recomiendo leer todos los comentarios de las líneas de código a continuación
Código Delphi
[-]
function BasesDisponibles : TStringList; var
AIniFile : TIniFile; Ruta: string;
StrLst : TStringList;
begin
StrLst := TStringList.Create;
Ruta := ExtractFileDir(ParamStr(0)); AIniFile := TIniFile.Create(Ruta + '\Bases.ini'); AIniFile.ReadSectionValues('BD',StrLst); AIniFile.Free; result := StrLst;
end;
procedure TForm.Carga_Items_DB(DbSeleccionada: String); var
StrLst : TStringList; i : Integer;
begin
StrLst := BasesDisponibles;
for i := 0 to StrLst.Count - 1 do begin
ComboBoxBases.Items.Add(StrLst.Strings[i]); if StrLst.Strings[i] = DbSeleccionada then
begin
ComboBoxBases.ItemIndex := i;
end;
end;
end;
procedure TForm.BotonOkClick(Sender: TObject); var
Ruta: string;
StrLst : TStringList;
AIniFile : TIniFile; begin
Ruta := ExtractFileDir(ParamStr(0)); AIniFile := TIniFile.Create(Ruta + '\Inicio.ini'); AIniFile.WriteString('Configuracion', 'udl', ComboBox.Items[ComboBox.ItemIndex]);
AIniFile.Free; end;
procedure TForm.FormShow(Sender: TObject); var
AIniFile : TIniFile;
Inicio : string;
DbSeleccionada : String;
begin
Inicio := ExtractFileDir(ParamStr(0)) + '\Inicio.ini';
AIniFile := TIniFile.Create(Inicio);
DbSeleccionada := AIniFile.ReadString('Configuracion','udl','db1.udl');
Carga_Items_DB(DbSeleccionada);
AIniFile.Free;
UdlStr := ExtractFileDir(ParamStr(0)) + '\' + DbSeleccionada;
DataModule.DB.Connected := False; DataModule.DB.Close; DataModule.DB.ConnectionString := 'FILE NAME=' + UdlStr; DataModule.DB.Open; end;
-----------------------------------------------
Con colaboración podemos lograr cosas grandes.