⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 un_pluginconfig.pas

📁 信息系统工作核心代码,若要具体可以联系我,这只是一部分核心代码,大家一起交流分享.谢谢
💻 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 + -