📄 un_pluginconfig.pas
字号:
unit Un_PluginConfig;
interface
uses
Classes, SysUtils, IniFiles;
type
IPluginConfig=interface
//得到类名称
function GetConfig: TStrings;
end;
TIniPluginConfig=class(TInterfacedObject, IPluginConfig)
private
FIniFile: TIniFile;
FPluginNames: TStrings;
public
constructor Create(AFileName: string);
destructor Destroy; override;
function GetConfig: TStrings;
end;
IPluginConfigFile=interface
function GetConfigFiles: TStrings;
end;
TIniPluginConfigFile=class(TInterfacedObject, IPluginConfigFile)
private
FDirectory: string;
FConfigFiles: TStrings;
public
constructor Create(Directory: string);
destructor Destroy; override;
function GetConfigFiles: TStrings;
end;
implementation
{ TIniPluginConfig }
constructor TIniPluginConfig.Create(AFileName: string);
begin
FIniFile:= TIniFile.Create(AFileName);
FPluginNames:= TStringList.Create;
end;
destructor TIniPluginConfig.Destroy;
begin
FIniFile.Free;
FPluginNames.Free;
inherited;
end;
function TIniPluginConfig.GetConfig: TStrings;
var
i, Index: Integer;
TmpStr: string;
begin
FPluginNames.Clear;
FIniFile.ReadSectionValues('plug-ins', FPluginNames);
for i:= 0 to FPluginNames.Count-1 do begin
TmpStr:= FPluginNames.Strings[i];
Index:= pos('=', TmpStr);
if Index>0 then begin
Delete(TmpStr,1,index);
if Trim(TmpStr)<>'' then
FPluginNames.Strings[i]:= TmpStr;
end;
end;
result:= FPluginNames;
end;
{ TIniPluginConfigFile }
constructor TIniPluginConfigFile.Create(Directory: string);
begin
FDirectory:= Directory;
FConfigFiles:= TStringList.Create;
end;
destructor TIniPluginConfigFile.Destroy;
begin
FConfigFiles.Free;
inherited;
end;
function TIniPluginConfigFile.GetConfigFiles: TStrings;
var
R: Integer;
F: TSearchRec;
begin
FConfigFiles.Clear;
R:= FindFirst(FDirectory+'*.ini', faAnyFile, F);
try
while R = 0 do begin
if ((F.Attr and FaDirectory <> FaDirectory) and
(F.Attr and FaVolumeId <> FaVolumeID)) then begin
FConfigFiles.Add(FDirectory+F.Name)
end;
r:= FindNext(F);
end;
finally
FindClose(F);
end;
Result:= FConfigFiles;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -