Delphi对保存数据库连接信息的Ini文件的操作类

2016-08-22 10:23:35来源:http://jxyx521.blog.51cto.com/7643111/1293914作者:jyxy521人点击


转自:http://suguiyang.blog.51cto.com/1035725/375675

/----------------------------------------------------------////------- Delphi对保存数据库连接信息的Ini文件的操作类 ------////------- 作用:封装对ini文件的操作------////------- 类名称: IniOptions ------////------- 属性如下: ------////-------FconfigAutoLogon: Boolean (是否自动登录) ------////-------FconfigAuthenticationStyle: string------////-------(表示身份验证方式,WindowsNT/SQLServer)------////-------FconfigServerName: string (服务器名称)------////-------FconfigUserID: string (登录名)------////-------FconfigPassword: string(登录密码) ------////-------FconfigDataBaseName: string(数据库名)------////------- 方法如下: ------////-------Function getIniFileAbsolutePath():string; ------////-------1.获取Ini文件的绝对路径------////-------Function IniFileExists():Boolean; ------////-------2.判断Ini文件是否存在 ------////-------Function createNewIniFile():Boolean; ------////-------3.创建新的Ini文件(默认配置) ------////-------procedure LoadSettings(Ini: TIniFile);------////-------4.从Ini文件中读取配置信息到属性值中------////-------procedure SaveSettings(Ini: TIniFile);------////-------5.将属性值保存到Ini文件中 ------////-------procedure LoadFromIniFile(); ------////-------6.从Init文件中读取信息,调用1,2,3,4------////-------procedure SaveToIniFile();------////-------7.保存到Ini文件,调用1,2,3,5 ------////-------作者: 苏贵阳2010-8-15------////-----------------------------------------------------------////-------IniOptions使用说明 ------////------- 1.调用单元uses IniOptionsUnit;------////------- 2.IniOptions.LoadFromIniFile(); ------////------- CB_FWQMC.Text := IniOptions.configServerName ------////----- 3. IniOptions.configDataBaseName:=CB_SJKM.Text; -----////------- IniOptions.SaveToIniFile(); ------////-----------------------------------------------------------//

unit IniOptionsUnit;

interface

uses//使用到的包 Classes, SysUtils, IniFiles, Forms, Windows, Messages,Dialogs;

const//---常量定义

IniFileRelativePath = 'ADOConnConfInfo.ini';//---默认的Ini文件名

//---配置文件中的关键字名称 csIniconfigSection = 'config'; {Section: config} csIniconfigAutoLogon = 'AutoLogon'; csIniconfigAuthenticationStyle = 'AuthenticationStyle'; csIniconfigServerName = 'ServerName'; csIniconfigUserID = 'UserID'; csIniconfigPassword = 'Password'; csIniconfigDataBaseName = 'DataBaseName';

type TIniOptions = class(TObject) //---定义类

private

//---属性定义{Section: config}FconfigAutoLogon: Boolean;FconfigAuthenticationStyle: string;FconfigServerName: string;FconfigUserID: string;FconfigPassword: string;FconfigDataBaseName: string;

public

//---方法定义Function getIniFileAbsolutePath():string;Function IniFileExists():Boolean;Function createNewIniFile():Boolean;procedure LoadSettings(Ini: TIniFile);procedure SaveSettings(Ini: TIniFile);procedure LoadFromIniFile();procedure SaveToIniFile();

{Section: config}

//--- 对属性值进行读取和保存操作,如 Get和Setproperty configAutoLogon: Boolean read FconfigAutoLogon write FconfigAutoLogon;property configAuthenticationStyle: string read FconfigAuthenticationStyle write FconfigAuthenticationStyle;property configServerName: string read FconfigServerName write FconfigServerName;property configUserID: string read FconfigUserID write FconfigUserID;property configPassword: string read FconfigPassword write FconfigPassword;property configDataBaseName: string read FconfigDataBaseName write FconfigDataBaseName;

end;

var IniOptions: TIniOptions = nil;//--- 生成一个对象IniOptions属于类TIniOptions

implementation

Function TIniOptions.getIniFileAbsolutePath():string;//-------------------------------------------------------////------getIniFileAbsolutePath 说明 ------////------ 函数作用:获取Ini文件的绝对路径 ------////------ 返回值:Ini文件的绝对路径------////-------------------------------------------------------//var IniFileAbsolutePath : string;begin IniFileAbsolutePath:= ExtractFilePath(application.ExeName); //获取INI文件路径。 if IniFileAbsolutePath[length(IniFileAbsolutePath)]='' thenIniFileAbsolutePath := IniFileAbsolutePath + IniFileRelativePath elseIniFileAbsolutePath := IniFileAbsolutePath + IniFileRelativePath ; result := IniFileAbsolutePath ;end;

Function TIniOptions.IniFileExists():Boolean;//-------------------------------------------------------////------ IniFileExists 说明------////------ 函数作用:判断Ini文件是否存在------////------ 返回值:存在返回true,不存在返回false------////-------------------------------------------------------//begin if FileExists(getIniFileAbsolutePath()) thenresult := True elseresult := False;end;

Function TIniOptions.createNewIniFile():Boolean;//-------------------------------------------------------////------createNewIniFile 说明 ------////------ 函数作用:如果Ini文件不存在就创建新文件 ------////------ 返回值:已存在返回false,创建成功返回TRUE------////-------------------------------------------------------//var _file :Textfile; filehandle:Thandle;begin if IniFileExists() then beginresult := False; end else beginFileHandle:=FileCreate(getIniFileAbsolutePath());fileclose(FileHandle);AssignFile(_file,getIniFileAbsolutePath());rewrite(_file);try Writeln(_file,';AutoLogon用来表示是否自动登录'); Writeln(_file,';AuthenticationStyle表示身份验证方式,WindowsNT/SQLServer'); Writeln(_file,';ServerName表示SQL服务器名称'); Writeln(_file,';UserID 表示登录名'); Writeln(_file,';Password表示密码'); Writeln(_file,';DataBaseName表示数据库名'); Writeln(_file,'[config]'); Writeln(_file,'AutoLogon=1'); Writeln(_file,'AuthenticationStyle=SQLServer'); Writeln(_file,'ServerName=(local)'); Writeln(_file,'UserID=sa'); Writeln(_file,'Password='); Writeln(_file,'DataBaseName=master');finally Closefile(_file);end;result := True; end;end;

procedure TIniOptions.LoadSettings(Ini: TIniFile);//-------------------------------------------------------////------ LoadSettings 说明------////------ 作用:从Ini文件中读取配置信息到属性值中 ------////------ 返回值:无------////-------------------------------------------------------//begin if Ini <> nil then begin{Section: config}FconfigAutoLogon := Ini.ReadBool(csIniconfigSection, csIniconfigAutoLogon, True);FconfigAuthenticationStyle := Ini.ReadString(csIniconfigSection, csIniconfigAuthenticationStyle, 'SQLServer');FconfigServerName := Ini.ReadString(csIniconfigSection, csIniconfigServerName, 'local');FconfigUserID := Ini.ReadString(csIniconfigSection, csIniconfigUserID, 'sa');FconfigPassword := Ini.ReadString(csIniconfigSection, csIniconfigPassword, '');FconfigDataBaseName := Ini.ReadString(csIniconfigSection, csIniconfigDataBaseName, 'master'); end;end;

procedure TIniOptions.SaveSettings(Ini: TIniFile);//-------------------------------------------------------////------ SaveSettings 说明------////------ 作用:将属性值保存到Ini文件中------////------ 返回值:无------////-------------------------------------------------------//begin if Ini <> nil then begin{Section: config}Ini.WriteBool(csIniconfigSection, csIniconfigAutoLogon, FconfigAutoLogon);Ini.WriteString(csIniconfigSection, csIniconfigAuthenticationStyle, FconfigAuthenticationStyle);Ini.WriteString(csIniconfigSection, csIniconfigServerName, FconfigServerName);Ini.WriteString(csIniconfigSection, csIniconfigUserID, FconfigUserID);Ini.WriteString(csIniconfigSection, csIniconfigPassword, FconfigPassword);Ini.WriteString(csIniconfigSection, csIniconfigDataBaseName, FconfigDataBaseName); end;end;

procedure TIniOptions.LoadFromIniFile();//-------------------------------------------------------////------LoadFromIniFile 说明 ------////------ 作用:从Init文件中读取信息,调用1,2,3,4------////------ 返回值:无------////-------------------------------------------------------//var Ini: TIniFile; FileName : string;begin FileName := getIniFileAbsolutePath(); if not IniFileExists() then createNewIniFile(); Ini := TIniFile.Create(FileName); tryLoadSettings(Ini); finallyIni.Free; end;end;

procedure TIniOptions.SaveToIniFile();//-------------------------------------------------------////------ SaveToIniFile 说明------////------ 作用:保存到Ini文件,调用1,2,3,5 ------////------ 返回值:无------////-------------------------------------------------------//var Ini: TIniFile; FileName : string;begin FileName := getIniFileAbsolutePath(); if not IniFileExists() then createNewIniFile(); Ini := TIniFile.Create(FileName); trySaveSettings(Ini); finallyIni.Free; end;end;

initialization IniOptions := TIniOptions.Create;

finalization IniOptions.Free;end.

//---------------------------------------ADOConnConfInfo.ini-----------------------------------------//

;AutoLogon用来表示是否自动登录;AuthenticationStyle表示身份验证方式,WindowsNT/SQLServer;ServerName表示SQL服务器名称;UserID 表示登录名;Password表示密码;DataBaseName表示数据库名[config]AutoLogon=1AuthenticationStyle=WindowsNTServerName=111UserID=saPassword=DataBaseName=111


最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台