我有此代码:
var
ExtString: string;
const
Extensions : array[0..4] of string = ('.rar', '.zip', '.doc', '.jpg', '.gif');
if ExtString in Extensions then
在最后一行,我得到一个错误:
[[DCC错误] E2015运算符('then')不适用于此操作数类型
我认为我无法做到这一点,那么如何正确执行任务?
您已经发现,您无法使用in
在字符串数组中检查字符串。
您可以使用此功能代替if
语句。
function StrInArray(const Value : String;const ArrayOfString : Array of String) : Boolean;
var
Loop : String;
begin
for Loop in ArrayOfString do
begin
if Value = Loop then
begin
Exit(true);
end;
end;
result := false;
end;
您可以这样称呼它。
if StrInArray(ExtString,Extensions) then
StrUtils.pas
已定义。
function MatchStr(const AText: string; const AValues: array of string): Boolean;
从常量数组初始化TStringList实例,并使用IndexOf()。
有时最简单的解决方案不是最明显的
var
ExtString: string;
const
Extensions : string = ('.rar,.zip,.doc,.jpg,.gif');
if Pos(ExtString, Extensions) > 0 then