Sei sulla pagina 1di 7

unit Archivoini;

interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, iniFiles, DB, ADODB, StdCtrls, ComCtrls, Buttons;

type
TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Button1: TButton;
ADOConnection1: TADOConnection;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
// Declaracion de funciones
function encriptacion ( Cadencrip :string): string;
//function descencritpar( Cadencrip :string): string;
// Declaracion de Procedimientos
procedure LoadIni(PathIni : string);
procedure conectionDB;
//procedure crearArchiEncri( PathIni : string);
end;

// Estructura idntica a los datos que llegan en el archivo


type
ConecTionBD = record
MotDb : string;
NomBD : String;
UsrBD : string;
PswBD : string;
end;// Fin Estructura

// Declaracin de Constantes
const
STR_CONN = 'Provider=SQLOLEDB.1;Password=%s;Persist Security
Info=True;' +
'User ID=%s;Initial Catalog=%s;Data Source=%s';
CONFIG_SECTION = 'ConfigDB';
STR_EMPTY = '';
//Variables de tipo Global
var
Form1: TForm1;
ini: TIniFile;// Variable de Tipo TiniFile
EstructFile : ConecTionBD;// Variable de Tipo Estructura
nombrearchguardar: string;

implementation

{$R *.dfm}

// Procedimiento que hace la conexin a base de datos


function TForm1.encriptacion (Cadencrip :string): string;
var
II : integer;
datoInt : integer;
begin
// guarda el caracter para ser encriptado
datoInt := 0;
// for que recorre la cadena
for II:= 1 to Length(Cadencrip) do
begin
datoInt:= Ord(cadencrip[II]);
datoInt:= datoInt xor $996;
cadencrip[II]:= char(datoInt);
end; // end for
//ShowMessage(cadencrip);
result:= cadencrip;
end;

// procedimiento que hace la conexion a base de datos


procedure TForm1.conectionDB;
var
Str:string;
begin
// Intentar conectar

ADOConnection1.COnnectionObject.ConnectionString:=
// coneccion forma de acerla
// Format5o de conexion Basde de Datos
Format(STR_CONN, [EstructFile.PswBD,EstructFile.UsrBD
,EstructFile.NomBD,EstructFile.MotDb]);
try
// Abre la conexion
ADOConnection1.Open;

// Pregunta si la conexion se realiz satisfactoriamente


if ADOConnection1.Connected = true then
begin
ShowMessage('Conexion satisfactoria');
end
else
begin
ShowMessage('Problemas en la conexin');
end;
except
on E:Exception do begin
MessageDlg('Error: ' + E.Message, mtWarning, [mbOK], 0);
ADOConnection1.Close;
end;//end except
end;//end try
// Cierra la conexcion

//ADOConnection1.Close;
end;

// Procedimiento que lee el archivo ini


procedure TForm1.LoadIni(PathIni : string);
var
Fileini:string;
FileOutIni:string;
begin
Fileini:='';
//Path archivo de salida encriptado
FileOutIni:='D:\jaime andres arango\ejemplo ini\archivo
ini\ejemplo_cnn_ado_inifiles\S';
// if el archivo no existe
if not FileExists(PathIni) then
begin
ShowMessage('No se ha encontrado el fichero de configuracin');
exit;
end//endif
else
begin
// Cargar el fichero INI
Fileini := ChangeFileExt(PathIni,'.ini');
//cadenaArch:= ExtracFileDir(PathIni);
ini := TIniFile.Create(Fileini);
// carga los datos
try

// Cargar datos del archivo Ini


EstructFile.MotDb:= ini.ReadString(CONFIG_SECTION, 'Motdb',
STR_EMPTY);

EstructFile.NomBD:= ini.ReadString(CONFIG_SECTION, 'Nombd',


STR_EMPTY);
EstructFile.UsrBD:= ini.ReadString(CONFIG_SECTION, 'UsrBD',
STR_EMPTY);
EstructFile.PswBD:= ini.ReadString(CONFIG_SECTION, 'PswBD',
STR_EMPTY);

// Llama a la funcion que encripta Archivos a encriptar


EstructFile.MotDb:= encriptacion(EstructFile.MotDb);
EstructFile.NomBD:= encriptacion(EstructFile.NomBD);
EstructFile.UsrBD:= encriptacion(EstructFile.UsrBD);
EstructFile.PswBD:= encriptacion(EstructFile.PswBD);

// Llama a la funcion que guarda el archivo encriptado


//crearArchiEncri(FileOutIni);

// LLama a la funcion coneccion que Realiza la conexion a la base de


datos
conectionDB;
except
on E:Exception do
begin
MessageDlg('Error: ' + E.Message, mtWarning, [mbOK], 0);
end;//endexce

end;//endtry
FreeAndNil(ini);
end;//endelse
end;

// Si oprime el boton
procedure TForm1.Button1Click(Sender: TObject);
var
RuthIni: string;
begin
RuthIni:='';
// si el edit esta vacio
if Edit1.text = ' ' then
begin
ShowMessage('No hay ruta especificada');
end// Endif
else
begin
// Asigna la ruta a la variable RuthIni
RuthIni:=Edit1.text;
// Enva la ruta al procedimiento de cargar ini.
LoadIni(RuthIni);
End;
end;//end procedure

end.