gpt4 book ai didi

Delphi - 如何制作具有启动/停止功能的毫秒或纳秒计时器?

转载 作者:行者123 更新时间:2023-12-03 15:37:07 27 4
gpt4 key购买 nike

我正在Delphi7中寻找以毫秒或纳秒为单位的计时器。我必须通过顺序搜索检查三个 ISAM 文件的速度。第一个 ind 文件包含 50 个字符串,例如“record_0”到“record_50”。第二个 - “record_0”到“record_500”,第三个 - “record_0”到“record_5000”。我已经实现了一切,但我不知道如何制作计时器。我正在将一个字符串与每个 ISAM 文件中的最后一项进行比较。这是我的第一个 ind 文件的代码:

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
var content : String[20];
var indexCounter:integer;
var keyword:string;
begin
//First ISAM file
AssignFile(indF1, 'index1.ind');
ReWrite(indF1);
Reset(indF1);
for i:=0 to 49 do begin
content := 'record_';
content := content + IntToStr(i+1);
index1.index1 := content;
index1.position1 := FileSize(indF1);
Seek(indF1, FileSize(indF1));
write(indF1, index1);
end;
CloseFile(indF1);
Label12.Caption := FileSizeStr('index1.ind');

//Sequential search in first ind file
Reset(indF1);
keyword := 'record_50';
indexCounter := 0;
//start timer
while not Eof(indF1) do begin
Seek(indF1, indexCounter);
Read(indF1, Index1);
if (keyword = Index1.index1) then begin
//stop timer;
//Label20 := milliseconds/nanoseconds;
//return/break while loop (result := -1; exit;) ???
end;
indexCounter := indexCounter + 1;
end;

我需要一个过程/函数,这样当我调用它时,它应该以毫秒或纳秒为单位开始计数,并在找到字符串时停止(它是每个 ind 文件中的最后一个字符串),并显示遍历所有字符串所用的时间。文件。我也不知道如何打破 while 循环。提前致谢。

最佳答案

此处描述的 TTopWatch"delphi-high-performance-timer-tstopwatch"具有所需的所有功能(对于 Delphi-7)。

它在更高版本的 Delphi (Delphi-2010) 中作为单元诊断中的高级记录实现。

示例:

var
sw : TStopWatch;
elapsedMilliseconds : cardinal;
begin
...
sw := TStopWatch.Create() ;
try
sw.Start;

while not Eof(indF1) do begin
Seek(indF1, indexCounter);
Read(indF1, Index1);
if (keyword = Index1.index1) then begin
sw.Stop;
Label20.Caption := IntToStr(sw.ElapsedMilliseconds);
break; // break while loop
end;
indexCounter := indexCounter + 1;
end;
...
finally
sw.Free;
end;
end;

要中断 while 循环,只需在条件测试中执行 break; 即可。

关于Delphi - 如何制作具有启动/停止功能的毫秒或纳秒计时器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14834534/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com