程序启动后扫描文件

Scan file after start of programm

我在我的 Lazarus 工具中添加了一个 TToggleBox,现在我希望根据位于同一目录的文件中是否存在字符串来设置它。因此,我希望 Lazarus 在程序启动后立即检查文件中的字符串。如果它包含字符串(例如“hello world”),则应将 ToggleBox1 的标题(见下文)设置为 "Activated",如果字符串不存在,则设置为 "Deactivated"。我该怎么做?

TToggleBox:

procedure TForm1.ToggleBox1Change(Sender: TObject);
begin
 if ToggleBox1.Checked then
  begin
     ToggleBox1.Caption:='Deactivated'
   end
   else ToggleBox1.Caption:='Activated';
end; 

此外,在工具设置了标题切换框后,我想进一步与之交互。意思是,当找不到字符串并且 ToggleBox 的 Caption 已设置为 "Deactivated" 时,我想按 ToggleBox 启动 cmd-script 并将 Caption 设置为 "Activated" 并反转(如果通过按 ToggleBox 找到字符串并将标题设置为 "Activated",我想将标题设置为 "Deactivated" 并启动另一个 cmd 脚本)。你怎么能这样做?

您可以使用 TStringList 从磁盘加载文件,假设它是一个文本文件,然后使用 Pos() 函数查看字符串列表的文本 属性 是否包含感兴趣的字符串。例如:

function TextFileContains(cost AFileName, AString : String) : boolean;
var
  StringList : TStringList;
begin
  StringList := TStringList.Create;
  try
    Stringlist.LoadFromFile(AFileName);  //  Note:  AFileName should include the full path to the file
    Result := Pos(AString, StringList.Text) > 0;
  finally
    StringList.Free;
  end;
end;

我假设您可以想出如何在您的代码中使用此函数来实现所需的结果。如果没有,请在评论中提问。