当前位置: 首页 > 知识库问答 >
问题:

在Inno安装预处理器中发出新行

屈升
2023-03-14

当使用Inno Setup预处理器生成多行输出时,例如我的这些回答:

  • Inno Setup-递归子目录而不创建相同的子目录
  • 将多个源代码行添加到Inno File部分的函数
  • 以编程方式生成Inno安装文件标志
  • Inno Setup:为文件夹及其子文件夹中的所有文件动态添加组件
  • 在所有文件的源路径之间进行选择

我总是必须使用< code>#pragma parseroption指令切换到C风格的字符串文字,因为对于C风格的字符串文字,我可以使用< code>\n:

#pragma parseroption -p-

#define TwoLines "line1\nline2\n"

#pragma parseroption -p+

我还没有找到任何在默认的 Pascal 样式字符串文字中发出换行符的方法。

在真正的Pascal(Script)字符串中,可以使用<code>#13#10。但这在预处理器中不起作用。两者都没有Pascal<code>Chr</code>函数的等价物。

有没有其他方法可以在Pascal样式的字符串文本中发出新行?

共有2个答案

刘和玉
2023-03-14

我查看了Inno Setup预处理器的源代码:

https://github.com/jrsoftware/issrc/tree/master/Projects/ISPP

我认为除了你的方法没有别的方法了。预处理器主要基于C标记器,parseroption-p基本上只是启用/禁用对转义序列的支持。但是没有像#13#10这样解析Pascal字符文字的实现。

雍骏俊
2023-03-14

Inno Setup 6中有< code>NewLine宏。

如果您使用的是旧版本的Inno Setup,您可以在自己的脚本中定义宏。它被定义为:

#pragma parseroption -p-
#define NewLine "\n"
#pragma parseroption -p+
 类似资料:
  • 我有一个Inno安装脚本,它将文件作为预处理器步骤查找: 当找不到时,我想发出一个错误: 但是ISPP只在编译时写文字源代码行: 剧本iss:[ISPP]在{#a_path}处找不到安装程序 是否可以在指令中扩展预处理器变量?

  • 我使用Inno Setup#定义指令来定义安装程序中有关软件包的所有信息,然后使用其他指令来提取该字符串的部分。例如,使用以下命令,将返回05414。 我在脚本和代码中使用这种方法,而且效果很好。然而,我遇到了一种情况,即通过编程生成字符串会很方便,而且我很难让它正常工作。例如,我想做以下事情。 的参数是正确的,但我收到一个编译器错误消息 [ISPP]格式“%”没有参数。 它似乎不喜欢行字符串中的

  • 在 webpack 中,所有的预处理器需要匹配对应的 loader。vue-loader 允许你使用其它 webpack loader 处理 Vue 组件的某一部分。它会根据 lang 属性自动推断出要使用的 loader。 CSS 例如,使用 Sass 编译我们的 <style> 语言块: npm install sass-loader node-sass --save-dev <style

  • 得益于 vue-loader, 我们可以通过 lang 属性在组件中的<template>, <script> 或 <style> 上使用各种预处理器。 举个例子,我们在 pages/index.vue 组件中使用 Pug, CoffeeScript 和 Sass: <template lang="pug"> h1.red Hello {{ name }}! </template> <scr

  • 这个模板已经预设设置大部分流行的css预处理器,包括 LESS, SASS, Stylus, 和 PostCSS。要使用一个预处理器的话 ,所有你需要做的就是安装相应的webpack loader。例如,使用SASS: npm install sass-loader node-sass --save-dev 你需要安装node-sass,因为saas-loader需要这个依赖项 在组件里面使用预

  • 问题内容: 如果我有一个布尔字段,如: 在我的代码中,我有如下语句: Java预处理程序只是摆脱了if语句和无法访问的代码? 问题答案: 大多数编译器都会删除该语句。例如: 编译完此类后,我将通过命令打印产生的指令清单: 如您所见,不!:)