程序启动后扫描文件
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;
我假设您可以想出如何在您的代码中使用此函数来实现所需的结果。如果没有,请在评论中提问。
我在我的 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;
我假设您可以想出如何在您的代码中使用此函数来实现所需的结果。如果没有,请在评论中提问。