You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Inno Setup报错:需闭合方括号(']'),代码语法疑问求助

问题原因及解决方法

Inno Setup 使用的 Pascal Script 不支持 ['a'..'f'] 这种用 .. 表示字符范围的集合写法,这就是触发Closing square bracket (']') expected报错的核心原因——编译器无法识别该语法,将..判定为非法符号,进而认为你遗漏了闭合的]。

两种可行的修正方案:

1. 明确列出集合内所有字符

把范围展开为单个字符,修改后的代码如下:

if not ((ProductKeyPage.Values[1][i] in ['a','b','c','d','e','f']) or 
        (ProductKeyPage.Values[1][i] in ['A','B','C','D','E','F']) or 
        (ProductKeyPage.Values[1][i] in ['0','1','2','3','4','5','6','7','8','9'])) then

2. 使用CharInSet函数简化判断

Inno Setup 内置了CharInSet函数,支持直接用范围语法判断字符归属,代码会更简洁:

if not (CharInSet(ProductKeyPage.Values[1][i], ['a'..'f']) or 
        CharInSet(ProductKeyPage.Values[1][i], ['A'..'F']) or 
        CharInSet(ProductKeyPage.Values[1][i], ['0'..'9'])) then

也可以合并范围进一步精简代码:

if not CharInSet(ProductKeyPage.Values[1][i], ['0'..'9', 'a'..'f', 'A'..'F']) then

内容的提问来源于stack exchange,提问作者user3161924

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 19:22:02