我正在尝试编写一个函数,该函数将依次检查每个驱动器上是否存在特定目录,将找到它的路径存储为变量,如果存在则返回 true,否则返回 false:
function IsDirPresent(): Boolean;
var
chrDriveLetter: Char;
strMyDir: String;
begin
for chrDriveLetter := 'A' to 'Z' do
begin
if DirExists(chrDriveLetter + ':\MyDir') then
strMyDirPath := chrDriveLetter + ':\MyDir'
end;
if strMyDirPath <> '' then
Result := True;
end;
Run Code Online (Sandbox Code Playgroud)
编译时,我的循环行出现类型不匹配错误。我正在努力找出循环出了什么问题,并且无法找到有关如何在 Inno Setup 中正确创建从 A 到 Z 的循环的任何信息。
您的循环对 Pascal 语言有效,因为Char类型是有序的,并且其范围常量属于相同类型,所以我猜这是 Pascal Script 语言符号的特定限制。我不知道是否有一些语法解决方法,也不知道是否Char允许将类型用于循环控制变量。
我只能为您提供使用整数类型循环控制变量的解决方法。它使用Ord和Chr函数。第一个返回字符的序数值,后一个从序数值返回 ASCII 字符:
var
C: Char;
I: Integer;
begin
for I := Ord('A') to Ord('Z') do
begin
C := Chr(I);
...
end;
end;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2823 次 |
| 最近记录: |