delphi – 如何快速清除简单类型的记录?

前端之家收集整理的这篇文章主要介绍了delphi – 如何快速清除简单类型的记录?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个这样定义的结构:
const
  MaxSignalRecords=255;
type
  TSignalRecord=record
   signal1  : integer;
   signal2  : integer;
   signal3  : integer;
   signal4  : integer;
   signal5  : integer;
   signal6  : integer;
   bsignal1 : Boolean;
   bsignal2 : Boolean;
   bsignal3 : Boolean;
   bsignal4 : Boolean;
   bsignal5 : Boolean;
   bsignal6 : Boolean;
  end;

TListSignals = Array[0..MaxSignalRecords-1] of TSignalRecord;

这种结构用于在这样的算法中进行数千计算:

for i:=1 to 900000 do
begin
  CleartheList(MyList);
  DotheMath(MyList);
  DotheChart(MyList);
end;

我正在寻找一种快速的方式将我的TListSignals的值初始化为0和false。

现在我使用这个:

procedure ClearListSignals(var ListSignals:TListSignals);
var
  i :Integer;
begin
  for i := 0 to MaxSignalRecords - 1 do
  with ListSignals[i] do
  begin
   signal1   :=0;
   signal2   :=0;
   signal3   :=0;
   signal4   :=0;
   signal5   :=0;
   signal6   :=0;
   bsignal1  :=false;
   bsignal2  :=false;
   bsignal3  :=false;
   bsignal4  :=false;
   bsignal5  :=false;
   bsignal6  :=false;
  end;
end;

如何提高ClearListSignals过程的性能

解决方法

您可以使用位于Windows单元中的ZeroMemory过程。
var
  MyList : TListSignals;
begin
     ZeroMemory(@Mylist,SizeOf(MyList));
end;

猜你在找的Delphi相关文章