我找到了LowerCase
preprocessor function,但我没有看到UpperCase
预处理函数。有一个Pascal脚本Uppercase
和Lowercase
。
好的,预处理器中没有大写字母。我们应该如何在预处理器中使用大写字母?
答案 0 :(得分:2)
UpperCase
支持功能最终是added in Inno Setup 6.0.4,其功能类似于LowerCase
:
该转换仅影响“ A”和“ Z”之间的7位ASCII字符。
如果您需要将基本拉丁字母以外的字符大写,则必须转到StringChange
或以noted by Martin Prikryl进行外部呼叫。
答案 1 :(得分:1)
Inno Setup中的上壳确实没有预处理器功能。
您可以定义自己的。
如果ascii a-z
足够你,那就可以了:
#define UpperCase(str S) \
S = StringChange(S, 'a', 'A'), \
S = StringChange(S, 'b', 'B'), \
S = StringChange(S, 'c', 'C'), \
S = StringChange(S, 'd', 'D'), \
S = StringChange(S, 'e', 'E'), \
S = StringChange(S, 'f', 'F'), \
S = StringChange(S, 'g', 'G'), \
S = StringChange(S, 'h', 'H'), \
S = StringChange(S, 'i', 'I'), \
S = StringChange(S, 'j', 'J'), \
S = StringChange(S, 'k', 'K'), \
S = StringChange(S, 'l', 'L'), \
S = StringChange(S, 'm', 'M'), \
S = StringChange(S, 'n', 'N'), \
S = StringChange(S, 'o', 'O'), \
S = StringChange(S, 'p', 'P'), \
S = StringChange(S, 'q', 'Q'), \
S = StringChange(S, 'r', 'R'), \
S = StringChange(S, 's', 'S'), \
S = StringChange(S, 't', 'T'), \
S = StringChange(S, 'u', 'U'), \
S = StringChange(S, 'v', 'V'), \
S = StringChange(S, 'w', 'W'), \
S = StringChange(S, 'x', 'X'), \
S = StringChange(S, 'y', 'Y'), \
S = StringChange(S, 'z', 'Z'), \
S
您可以将此功能添加到Inno Setup安装文件夹中的ISPPBuiltins.iss
。
如果需要可识别区域设置的大写,则可以从预处理器调用PowerShell。