如何用delphi从文本文件中读/写set枚举

时间:2016-06-27 03:39:31

标签: delphi

我想在Delphi中使用类似SQL的条件

    if VarI in SOMESET then 
    ...

[SOMESET]从任何文本文件中读取。

在ini / txt等任何文本文件中存储少量数字,并从文件中读取并将其替换为set,以便我们可以在运算符中使用if条件。

1 个答案:

答案 0 :(得分:1)

如果我理解你的要求是正确的,那么简单的回答是肯定的。您的术语可能有点偏离 - 设置意味着Delphi中的某些特定内容,但我不认为这就是您的意思。另外,我不认为你是在询问加载和保存的具体细节,所以我没有把它包括在内。相反,我认为你问的是如何在这个特定的情况下允许'in',这里是如何

unit Unit1;

interface

uses
  System.SysUtils;

type
  TMySet = record
  private
    function GetEntry(const i: integer): integer;
  public
    Entries : array of integer;
    // procedure LoadFromFile( const pFromFile : TFileName );
    class operator in ( const pTest : integer; pMyset : TMyset ) : boolean;
    property Entry[ const i : integer ] : integer
             read GetEntry; default;
  end;

implementation

{ TMySet }

function TMySet.GetEntry(const i: integer): integer;
begin
  Result := Entries[ i ]; // allow default exceptions to occur
end;

class operator TMySet.in(const pTest: integer; pMyset: TMyset): boolean;
var
  i: Integer;
begin
  for i := Low(pMyset.Entries) to High(pMyset.Entries) do
  begin
    if i = pMyset[ i ] then
    begin
      Result := TRUE;
      exit;
    end;
  end;
  // else
  Result := FALSE;
end;

end.

我希望我理解你的问题,这会有所帮助。