zeP*_*Pit 5 inno-setup constants pascalscript
对于安装程序,我需要创建文件夹链接。
\n\n为此,我使用“[Dirs]”部分创建目标文件夹。没问题。
\n\n然后,在“[Code]”部分中,使用函数“CurStepChanged(ssPostInstall)”,我读取临时安装文件以获取要创建的文件夹链接列表。文件的每一行都包含一个目标文件夹路径名和一个链接路径名...使用 Inno Setup 常量。\n读取每个值并将其存储为“字符串”变量。
\n\n当我将这些字符串变量传递给“ExpandConstant(lLinkTarg)”时,我在任何常量名称上收到内部运行时错误。
\n\n如果我将字符串内容复制粘贴到 'ExpandConstant('{#gRepNasSvg}\\UT{code:getProjetc}\\Docs')' 调用中,那么它可以工作......
\n\n关于我做错了什么的任何提示吗?
\n\n提前致谢。\nL.
\n\nprocedure CurStepChanged(CurStep: TSetupStep);\nvar\n lFileName: String;\n lLinkList: TArrayOfString;\n lIndex: Integer;\n lLinkLine: String;\n lLinkName: String;\n lLinkTarg: String;\n lSepPos: Integer;\n\nbegin\n // Apr\xc3\xa8s l'\xc3\xa9tape d'installation...\n if CurStep = ssPostInstall then\n begin\n // Si le fichier listant les liens \xc3\xa0 cr\xc3\xa9er existe...\n lFileName := ExpandConstant('{tmp}') + '\\' + ExpandConstant('{#gFicListeLiens}');\n if FileExists(lFileName) then\n begin\n // Lecture du contenu du fichier.\n LoadStringsFromFile(lFileName, lLinkList);\n\n // Pour chaque ligne lue...\n for lIndex := 0 to GetArrayLength(lLinkList) - 1 do\n begin\n // Lecture de la ligne.\n lLinkLine := Trim(lLinkList[lIndex]);\n\n // Si ce n'est pas un commentaire...\n if (Length(lLinkLine) > 0) and (lLinkLine[1] <> ';') then\n begin\n // Recherche du s\xc3\xa9parateur.\n lSepPos := Pos('>', lLinkLine);\n if lSepPos > 0 then\n begin\n // Get target location.\n lLinkTarg := Trim(Copy(lLinkLine, 1, lSepPos - 1));\nMsgBox(lLinkTarg, mbInformation, MB_OK);\n\n // NEXT LINE FAILS !\n lLinkTarg := ExpandConstant(lLinkTarg) ;\nMsgBox(lLinkTarg, mbInformation, MB_OK);\n\n // Get link location.\n lLinkName := Trim(Copy(lLinkLine, lSepPos + 1, Length(lLinkLine) - lSepPos));\nMsgBox(lLinkName, mbInformation, MB_OK);\n\n end\n end\n end\n end\n end\nend;\nRun Code Online (Sandbox Code Playgroud)\n\n有些东西我已经忘记了。
\n\n链接描述变量的格式为 '{#gRepNasSvg}\\UT{code:getProjetc}\\Docs'...
\nExpandConstant('{tmp}\{#gFicListeLiens}');
\(您应该始终在对 ExpandConstant 的调用中至少包含以下目录常量,并且只要不包含任何特殊字符,在其中包含其他文本也没有什么坏处。)
但是,您尝试读入的文件的内容是什么?
请注意,ExpandConstant 不会(也不能)扩展{#var}样式常量,这些常量在编译时由预处理器扩展,并且不能在运行时扩展。尝试{code:...}从 [Code] 函数内部扩展常量通常也是不好的风格。
首先使用文件的原因是什么?它是在安装过程中由某些东西生成的吗?如果不是(或者即使是这样,并且您可以在脚本中生成而不是外部的东西),您应该只在代码中使用数组。
| 归档时间: |
|
| 查看次数: |
12283 次 |
| 最近记录: |