主要内容

阅读与TLC记录文件

教程概述

摘要目的:理解记录文件的结构,学习如何用TLC指令解析。

文件夹:matlabroot/工具箱/ rtw / rtwdemos tlctutorial /指南(开放)

在本教程中你解释简单的结构化文件记录一系列的TLC脚本。您将学习如何构建记录,以及薄层色谱%分配% < >令牌扩张指令是用来处理它们。此外,本教程展示了循环使用% foreach,范围使用%,

本教程包括了这些步骤,你应该遵循顺序:

  1. 记录文件的结构——一些背景和一个简单的例子

  2. 解释记录——记录文件的内容

  3. 薄层色谱分析脚本——解构表示

  4. 修改read-guide.tlc——实验与薄层色谱

  5. 通过和使用一个参数——通过TLC文件从命令行参数

  6. 审查

记录文件的结构

代码生成器将模型编译为一个结构化的形式称为记录文件,称为模型.rtw。这样编译模型文件相似的语法和组织源模型文件,因为它们包含一系列的层级结构嵌套的记录表单

recordName {itemName itemValue}

项目名称字母。项的值可以是字符串或数字。数值可以是标量、向量或矩阵。花括号出发每个记录的内容,这可能包含一个或多个项目,分隔空间,选项卡,或返回字符。

在一个模型.rtw文件,顶层(第一个)记录的名字是CompiledModel。每一块由subrecord表示,被阻止的名字。薄层色谱可以解析格式良好的记录文件,因为这说明锻炼。

下面的清单是一个有效的记录文件,薄层色谱可以解析,虽然不是一个它可以生成代码。评论是由一个井号(#):

# #文件:指南。rtw说明性的记录文件,该文件不能用仿真软件#注:字符串值必须在报价前{#外层的记录称为前日期“21 - 金宝app8月- 2008”号命名名称/值对。日期员工{#嵌套在上面记录FirstName“亚瑟”# Top.Employeeα字段。FirstName姓“削弱”# Top.Employeeα字段。1.78 #数字字段Top.Employee LastName开销。开销PayRate Top.Employee 11.50 #数字领域。PayRate GrossRate Top.Employee 0.0 #数字领域。GrossRate} #员工记录NumProject年底3 #表示长度的列表项目{#第一个列表项,称为最高。项目[0]名称“茶”#α字段名,Top.Project [0]。名字困难3 #数字字段Top.Project [0]。困难}#第一个列表项项目年底{#第二个列表项,称为最高。项目[1]的名字“Gillian”#α字段名,Top.Project [1]。名字困难8 #数字字段Top.Project [1]。困难}#结束第二个列表项项目{#第三个列表项,称为最高。项目[2]的名字“Zaphod”#α字段名,Top.Project [2]。名字困难10 #数字字段Top.Project [2]。困难}#结束第三个列表项} # End of Top record and of file

只要程序员知道记录和字段的名字,以及他们的预期内容,他们可以组成TLC语句读、解析和操作记录文件数据。

解释记录

这里的输出是一个薄层色谱程序脚本读取guide.rtw,解释其记录、操纵字段数据和格式描述,针对MATLAB®命令窗口:

使用薄层色谱可以:*直接访问字段的值,例如% <最高。日期>——评估:"21-Aug-2008" * Assign contents of a field to a variable, e.g. "%assign worker = Top.Employee.FirstName" worker expands to Top.Employee.FirstName = "Arthur" * Concatenate string values, e.g. "%assign worker = worker + " " + Top.Employee.LastName" worker expands to worker + " " + Top.Employee.LastName = "Arthur Dent" * Perform arithmetic operations, e.g. "%assign wageCost = Top.Employee.PayRate * Top.Employee.Overhead" wageCost expands to Top.Employee.PayRate * Top.Employee.Overhead <- 11.5 * 1.78 = 20.47 * Put variables into a field, e.g. Top.Employee.GrossRate starts at 0.0 "%assign Top.Employee.GrossRate = wageCost" Top.Employee.GrossRate expands to wageCost = 20.47 * Index lists of values, e.g. "%assign projects = Top.Project[0].Name + ", " + Top.Project[1].Name..." "+ ", " + Top.Project[2].Name" projects expands to Top.Project[0].Name + ", " + Top.Project[1].Name + ", " + Top.Project[2].Name = Tea, Gillian, Zaphod * Traverse and manipulate list data via loops, e.g. - At top of Loop, Project = Tea; Difficulty = 3 - Bottom of Loop, i = 0; diffSum = 3.0 - At top of Loop, Project = Gillian; Difficulty = 8 - Bottom of Loop, i = 1; diffSum = 11.0 - At top of Loop, Project = Zaphod; Difficulty = 10 - Bottom of Loop, i = 2; diffSum = 21.0 Average Project Difficulty expands to diffSum / Top.NumProject = 21.0 / 3 = 7.0

这个输出guide.rtw是由调用MATLAB命令窗口TLC,执行一个脚本叫什么read-guide.tlc。你现在这样做,通过以下步骤:

  1. 在MATLAB中,改变文件夹(cd你的副本)tlctutorial /指南在您的工作目录中。

  2. 产生的输出就上市,过程guide.rtw用TLC脚本read-guide.tlc通过输入以下命令:

    薄层色谱- v - r指南。rtw read-guide。tlc

请注意命令用法:

  • - r开关(读)确定输入数据文件,在这种情况下guide.rtw

  • TLC脚本处理指定的数据文件最后一个令牌类型。

  • - v(详细)指导输出切换到命令窗口,除非这个本身TLC文件句柄。

薄层色谱分析脚本

你现在解剖脚本就跑。每个输出的“段落”guide.tlc在序列在以下简短的讨论部分:

代码编写约定

这些都是一些基本的TLC语法和编码惯例:

% %的评论 TLC评论,不输出
/ *注释* / 评论,输出
%的关键字 TLC指令(关键字),从“%
% < expr > TLC令牌运营商
(期) 作用域运算符,例如,Top.Lev2.Lev3
(行尾) 声明继续(换行不输出)
\(行尾) 语句延续(输出换行符)
localvarIdentifier 局部变量以小写字母开始
GlobalvarIdentifier 全局变量在大写字母开始
RecordIdentifier 记录标识符开始使用大写
存在() TLC内置函数使用大写命名
注意:TLC标识符是区分大小写的。

为进一步的信息,请参阅TLC编码惯例

文件头

该文件read-guide.tlc开始于:

% %文件:read-guide。薄层色谱(tlc评论这条线,将不打印)% % % %执行这个文件,类型:tlc - v - r指南。rtw read-guide.tlc% %Set format for displaying real values (default is "EXPONENTIAL") %realformat "CONCISE"
  • 行1到4 -文本后在一行字符% %被当作一个评论(忽视,不解释或输出)。

  • 第5行,第四行文本的解释说,是TLC指令(关键字)% realformat控制后续的浮点数格式化时如何显示在输出中。这里我们想减少数字显示。

令牌扩张

第一部分脚本生成的输出线:

使用薄层色谱可以:*直接访问字段的值,例如%分配td =“%”+“<。日期> % < td >——评估:“% < Top.Date >”
  • 1和2 -(行和行不包含TLC指令或令牌)只是回荡到输出流,包括首尾空格。

  • 3 -行创建一个变量命名道明并指定字符串值% < Top.Date >到它。的%分配指令创建新的和修改现有的变量。一般的语法是:

    %分配::变量=表达式
    可选双冒号前缀指定变量被分配给一个全局变量。在其缺席,TLC创建或修改一个局部变量在当前的范围。

  • 第4行:显示

    % < Top.Date >-- evaluates to:
    前面的线使TLC打印% < Top.Date >没有扩大。这两个文本结构的字符串粘贴在一起。
    %分配td =“%”+“< Top.Date >”
    讨论了在字符串处理++操作符作为连接字符串,并补充称,数字,向量,矩阵,并记录。

  • 行5 -评估(扩大)备案Top.Date。更准确地说,它评估日期它存在于范围。的语法% < expr >导致表达expr(可以是一个记录,一个变量,或一个函数)被评估。这个操作有时被称为一个eval

请注意

你不能嵌套% < expr >操作符(即% < foo % <吧> >是不允许的)。

请注意

当你使用% < expr >运营商在引号内,例如,“% < Top.Date >”薄层色谱展开表达式,然后包含引号中的结果。然而,将%分配在引号内,例如,“%分配foo = 3”,只是回应声明包含在引号输出流。没有分配结果(的价值喷火保持不变或未定义)。

一般作业

第二部分的脚本生成的输出线:

*一个字段的内容分配给一个变量,例如% = Top.Employee分配工人。FirstName“% = Top.Employee分配工人。FirstName" worker expands to Top.Employee.FirstName = %
  • 1号线-响应输出。

  • 行2 -赋值的字段FirstNameTop.Employee记录一个新的局部变量称为范围工人

  • 行3 -重复前面的语句,产生输出通过将它包含在引号。

  • 4号线——解释下面的赋值,说明了令牌的扩张。令牌% <工作>扩大到亚瑟

字符串处理+

脚本的下一节说明了字符串连接,其中一个使用的“+"操作符:

*连接字符串值,例如%分配职工=职工+ " " + Top.Employee。姓“%分配工人=工人+ " + Top.Employee。姓“工人扩大工人+ " + Top.Employee。LastName = " % <工作> "
  • 1号线-响应输出。

  • 行2 -执行连接。

  • 3 -回声线2的输出。

  • 4号线——描述了操作,一个变量的连接字段之间用一个空格来分隔字符。另一种方法,不使用+运营商是

    %分配工人= " % < Top.Employee。FirstName> %"
    另一种方法是使用评价领域,也同样有效。

+运营商,这是联想,也适用于数字类型,向量,矩阵,并记录:

  • 数值类型,添加两个表达式;这两个操作数必须是一个数字。例如:

    *数字类型的例子,例如Top.Employee。PayRate = % < Top.Employee。PayRate > Top.Employee。= % < Top.Employee开销。> %分配td = Top.Employee开销。PayRate + Top.Employee。GrossRate td = Top.Employee。PayRate + Top.Employee。开销td等于% < td >
    输出:
    *数字类型的例子,例如Top.Employee。PayRate = 11.5 Top.Employee。= 1.78 td = Top.Employee开销。PayRate + Top.Employee。开销td等于13.28

  • 向量,如果第一个参数是一个矢量,第二个是一个标量值,TLC附加标量值向量。例如:

    *矢量的例子,例如%分配v1 = [0, 1, 2, 3] v1 % < v1 > %分配tp1d = Top.Project [1]。困难Top.Project [1]。困难是% < tp1d > %分配v2 = v1 + v2 tp1d = v1 + Top.Project [1]。困难v2评估:% < v2 >
    输出:
    *矢量的例子,例如v1是[0,1,2,3]Top.Project [1]。困难是8 v1 + v2 = Top.Project [1]。困难v2评估:[0、1、2、3、8]

  • 矩阵——如果第一个参数是一个矩阵,第二个是一个向量的矩阵的列宽,TLC附加与另一个行向量矩阵。例如:

    *矩阵的例子,例如%分配mx₁= [(4、5、6、7);(8、9、10、11)]mx₁% < mx₁> v1是% < v1 > %分配mx = mx₁+ v1 mx = mx₁+ mx等于% < mx >
    输出:
    *矩阵的例子,例如mx₁是[[4、5、6、7);(8、9、10、11]]v1是[0,1,2,3]mx = mx₁+ v1 mx评估[(4、5、6、7);(8、9、10、11);[0,1,2,3]]

  • ——如果第一个参数是一个记录,记录TLC添加第二个参数作为参数标识符(其当前值)。例如:

    *记录的例子,例如%分配StartDate可以=”2008年8月28日,“StartDate可以% < StartDate可以> %分配tsd =最高+ StartDate可以顶+ StartDate可以。StartDate可以等于% < Top.StartDate >
    输出:
    *记录的例子,例如StartDate可以是2008年8月28日,最高+ StartDate可以。StartDate可以等于2008年8月28日

算术运算

TLC提供了一个完整的数字数据的算术运算符。在接下来的部分我们的TLC脚本,增加两个数值字段:

*执行算术运算,例如%分配wageCost = Top.Employee。PayRate * Top.Employee。“%分配wageCost = Top.Employee开销。PayRate * Top.Employee。“wageCost扩大Top.Employee开销。PayRate * Top.Employee。开销……< - - - - - - % < Top.Employee。PayRate > < Top.Employee * %。开销> = % < wageCost >
  • 1号线-响应输出。

  • 行2 -%分配计算值的语句,TLC存储在本地变量wageCost

  • 行3 -操作在第2行。

  • 行4和5 -组成一条语句。省略(输入连续三期,例如,)信号,声明中继续下面的线,但如果语句输出,TLC不插入换行符。继续发表声明和插入一个换行符,将省略替换为一个反斜杠(\)。

修改记录

一旦读入内存,您可以修改您创建和操作记录就像变量赋值。下一段read-guide.tlc替换记录字段的值Top.Employee.GrossRate:

*把变量放在一个字段,例如%分配Top.Employee。GrossRate = wageCost " %分配Top.Employee。Top.Employee GrossRate = wageCost”。GrossRate扩大wageCost = % < Top.Employee.GrossRate >

这种记录非持久的变化(因为记录文件输入薄层色谱;其他文件类型,如C源代码,输出),但可能是有用的。

您可以使用几个TLC指令除了%分配修改记录:

% createrecord 创造新的顶级记录,也可以指定subrecords,包括名称/值对。
% addtorecord 将字段添加到一个现有的记录。可以将新字段名称/值对现有记录或别名。
% mergerecord 结合一个或多个记录。第一个记录包含本身加上其他记录的副本内容指定的命令,在序列。
% copyrecord 创建一个新的记录% createrecord确实,除了来自现有记录的组件指定。
% undef var 删除(删除)var(变量或记录)范围。如果var记录的某个字段中,薄层色谱从记录中删除字段。如果var是一个记录数组(清单),TLC删除数组的第一个元素;其余元素仍然是可以访问的。你只可以删除你创建记录% createrecord% copyrecord

看到目标语言编译器指令有关这些指令。

指数列表

记录文件可以包含列表,或记录序列有相同的标识符。我们的示例包含一个标识为三个列表记录项目范围。引用索引列表,编号从0,在它们出现的顺序记录文件。这是TLC代码编译数据的名字场的项目列表:

*指数的值列表,如%分配项目= Top.Project [0]。名+”、“+ Top.Project [1] . Name……+”、“+ Top.Project [2]。的名字“%分配项目= Top.Project [0]。名+”、“+ Top.Project [1]。的名字…" "+ ", " + Top.Project[2].Name" projects expands to Top.Project[0].Name + ", " + Top.Project[1].Name + ", " + Top.Project[2].Name = %

Scope.Record [n] .Field语法类似于C引用数组元素的结构。

而明确的索引,如上述,是完全可以接受的,它通常比使用一个循环构造当遍历整个列表,如图所示遍历列表

遍历列表

按照惯例,记录文件的部分占据之前记录列表显示多少列表元素。在模型.rtw文件,等参数声明全国矿工工会鉴别,在那里鉴别标识符用于记录在列表中。在guide.rtw,项目列表看起来像这样:

NumProject 3 #表示长度的列表项目{#第一个列表项,称为最高。项目[0]名称“茶”#α字段名,Top.Project [0]。名字困难3 #数字字段Top.Project [0]。困难}#第一个列表项项目年底{#第二个列表项,称为最高。项目[1]的名字“Gillian”#α字段名,Top.Project [1]。名字困难8 #数字字段Top.Project [1]。困难}#结束第二个列表项项目{#第三个列表项,称为最高。项目[2]的名字“Zaphod”#α字段名,Top.Project [2]。名字困难10 #数字字段Top.Project [2]。困难}#结束第三个列表项

因此,的价值NumProject描述了有多少项目记录发生。

请注意

model.rtw文件也可以包含记录开始全国矿工工会但不列表大小的参数。TLC不需要尺寸参数列表开始全国矿工工会。因此你需要谨慎的解释全国矿工工会鉴别记录标识符。内置的TLC函数尺寸()可以确定的数量记录在指定的范围内,因此一个列表的长度。

的最后一段read-guide.tlc使用一个% foreach循环,控制的NumProject参数,进行迭代项目列表和操纵其价值观。

*通过循环遍历和操作列表数据,例如%分配diffSum foreach我= = 0.0%。NumProject——在循环,项目= % < Top.Project[我]. name >;困难=…% < Top.Project[我]。困难> %分配diffSum = diffSum + Top.Project[我]。困难——循环的底部,我= % <我>;diffSum = % < diffSum > % endforeach %分配avgDiff = diffSum /。NumProject平均项目困难扩大diffSum /。NumProject = % < diffSum >…/ % <。全国矿工工会项目> = %

您可能还记得,TLC输出看起来像这样:

*通过循环遍历和操作列表数据,例如,在循环,项目=茶;困难= 3 -环的底部,我= 0;diffSum = 3.0 -在循环,项目= Gillian;困难= 8 -底循环,i = 1;diffSum = 11.0 -在循环,项目= Zaphod;困难= 10 -循环的底部,我= 2;diffSum = 21.0平均项目困难扩大diffSum /。NumProjects = 21.0 / 3 = 7.0
初始化后求和变量diffSum,一个% foreach循环输入变量声明为循环计数器,迭代NumProject。循环的范围都是直到遇到相应的语句% endforeach达到(% foreach循环嵌套)。

请注意

循环迭代隐式地从0开始,范围小于指定的指数上界。循环索引是本地循环体。

修改read-guide.tlc

现在您已经进行了研究read-guide.tlc,是时候修改它。这个练习介绍两个重要的TLC设施,文件控制范围控制。在你实现read-guide.tlc脚本。

文件控制基础知识

TLC脚本几乎总是产生输出的字符流的形式。输出通常是针对一个或多个缓冲区和文件,统称为。到目前为止,您已经直接输出read-guide.tlc包括MATLAB命令窗口,因为你- v在命令行开关。证明通过省略- v当您运行read-guide.tlc。类型

薄层色谱- r指南。rtw read-guide.tlc

似乎没有发生。事实上,脚本被执行死刑,但输出定向到一个空设备(有时称为“桶”)。

有一个活跃的输出文件,即使它是空的。指定,打开和关闭文件,使用以下TLC指令:

% openfile streamid = "文件名”、“模式”% closefile streamid % selectfile streamid

如果你不给一个文件名,随后的输出流的内存缓冲区streamid。如果你不指定一个模式,TLC打开文件编写和删除任何现有的内容(系统级文件保护机制)。有效模式标识符一个(附加)w(写,默认)。附上这些字符引用。

% openfile指令/缓冲区(在创建一个文件w模式),或打开一个现有的一个一个模式)。注意所需的等于号文件规范。可以打开多个流写作,但一次只能激活一个。开关输出流,使用% selectfile指令。你不需要关闭文件,直到你完成它们。

默认的输出流,它可以用流respecify IDNULL_FILE,是。另一个内置流是STDOUT。当激活使用% selectfile,STDOUT将输出到MATLAB命令窗口。

请注意

的流NULL_FILESTDOUT永远是敞开的。指定用% openfile生成错误。使用% selectfile激活它们。

该指令% closefile关闭当前输出文件或缓冲区。直到一个% openfile或者一个% selectfile遇到指令,输出到以前打开的流(或者,如果不存在,为null)。使用% selectfile指定一个开放流阅读或写作。在实践中,许多TLC脚本编写的输出数据缓冲区,分开,然后一个序列中选择一个或多个文件及其内容后台打印。

实现输出文件控制

在你的tlctutorial /指南文件夹,找到该文件read-guide-file-src.tlc。提供的版本,这个文件包含注释和三行文本补充道。编辑这个文件来实现输出文件控制,如下:

  1. 开放read-guide-file-src.tlc在你的文本编辑器。

  2. 将文件保存为read-guide-file.tlc

  3. 注意五个注释行% % - >

    在这些评论,插入一个TLC指令表示。

  4. 保存编辑的文件read-guide-file.tlc

  5. 执行read-guide-file.tlc使用下面的命令:

    薄层色谱- r指南。rtw read-guide-file.tlc

    如果你成功了,TLC创建该文件guidetext.txt它包含预期的输出和MATLAB命令窗口显示

    * * *输出被定向到文件:guidetext。txt * * *我们差不多做完了。* * *处理完成。

如果你没有看到这些消息,或者如果没有产生一个文本文件,审查材料,再试一次。如果问题依然存在,检查read-guide-file.tlc指导/解决方金宝搏官方网站案子文件夹,看看你应该指定文件控制。

范围基本知识

记录文件的结构解释了分层组织的记录。每条记录存在一个范围内的嵌套定义的记录。示例文件,guide.rtw包含以下范围:

前顶。员工。项目[0] Top.Project[1] Top.Project[2]

引用一个字段或一条记录,指定它的范围,即使没有其他上下文包含标识符的存在。例如,在guide.rtw,这个领域FirstName只存在于范围Top.Employee。你必须引用它Top.Employee.FirstName只要访问它。

当模型深度嵌套的作用域,这可能导致非常长标识符的繁琐和容易出错的类型。例如:

CompiledModel.BlockOutputs.BlockOutput.ReusedBlockOutput

这个标识符的范围很长,也有类似的项目名称,你可以很容易地输入错误。

%和% endwith指令简化了编码负担TLC脚本和澄清他们的控制流。语法

与RecordName % % endwith TLC语句

每一个%,最终紧随其后的是一个吗% endwith,这些可能对嵌套(但不重叠)。如果RecordName低于最高水平,您不需要包含顶级范围的描述。例如,当前的范围guide.rtwTop.Employee,您可以指定

与员工(TLC语句)% % endwith

自然地,%与Top.Employee也有效的语法。一旦被通过%和% endwith在TLC报表,记录标识符不需要你指定他们的范围外。然而,请注意下列条件:

  • 您可以访问记录之外的电流%,范围,但你必须完全符合他们(例如,使用记录名称和字段)。

  • 当你做作业记录内%,指令,必须完全符合他们。

变化范围使用%,

在这个练习的最后一部分,您修改TLC脚本通过添加%和% endwith指令。您还需要编辑记录标识符名称(但不是局部变量)来解释产生的变化范围%,指令。

  1. 打开TLC脚本read-guide-scope-src.tlc在文本编辑器中。

  2. 将文件保存为read-guide-scope.tlc

  3. 注意开始的注释行% % - >

    在这些评论,插入一个TLC指令或修改报表已经存在,表示。

  4. 保存编辑的文件read-guide-scope.tlc

  5. 执行read-guide-scope.tlc使用下面的命令:

    薄层色谱- v - r指南。rtw read-guide-scope.tlc

输出应该一模一样read-guide.tlc的空白,除了可能你可能引入的缩进的代码内部%和% endwith或通过消除空白行。

完全指定范围内%,环境并不是一个错误,它仅仅是不必要的。然而,未能完全指定范围时将它分配给一个记录(例如,%分配GrossRate = wageCost)是无效的。

如果错误的结果从运行脚本,检查上面的讨论范围和编辑read-guide-scope.tlc消除它们。最后,检查read-guide-scope.tlc/金宝搏官方网站解决方案子文件夹,看看你应该在这个练习处理范围。

有关更多信息,请参见作用域模型中。rtw文件变量作用域

通过和使用一个参数

你可以用TLC命令和内置函数将从命令行参数传递给TLC文件被执行。最一般的命令开关——一个,分配任意变量。例如:

薄层色谱- r输入。rtw阿瓦尔人= 1 -afoo = vars.tlc“abc”

通过这条弦通过的结果——一个是一样的声明和初始化局部变量在文件被执行(在这里,vars.tlc)。例如:

%分配var = 1%分配foo =“abc”

你不需要声明这些变量在TLC文件中,并使用时设置——一个。然而,错误的结果,如果代码分配未申报你没有指定的变量——一个切换时调用该文件。还要注意,(形成鲜明对比- r开关)空间不应该分开——一个你声明的参数。

在本教程的最后一节中,您使用内置的函数GET_COMMAND_SWITCH ()打印的记录文件的名称在薄层色谱中使用脚本,并提供一个参数来控制代码是否抑制。默认情况下,代码执行,但如果命令行包含抑制船向一边倾斜的= 0:

  1. 打开TLC脚本read-guide-param-src.tlc在你的文本编辑器。

  2. 将文件保存为read-guide-param.tlc

  3. 使你的程序能够从命令行访问输入文件名,做到以下几点:

    1. 线以下% selectfile STDOUT添加一行:

      %分配inputfile = GET_COMMAND_SWITCH (r)

      %分配指令声明并设置变量。在这个例子中,它拥有一个字符串文件名标识符。GET_COMMAND_SWITCH ()返回任何字符串参数是指定的TLC命令开关。您必须使用大写为内置函数名称。

    2. 改变线”* * *与RECORDFILE合作“阅读如下:

      * * *处理RECORDFILE % < inputfile >
  4. 控制是否一段TLC执行代码,执行以下操作:

    1. 以下线”%分配inputfile = GET_COMMAND_SWITCH (r)”,添加:

      %如果存在(!(列表))% = 1% endif分配列表
      程序检查是否一个列表参数已经宣布,通过内在(内置)函数存在()。如果不存在列表变量,程序分配一个。这个定义列表和默认值真正的

    2. 附上在一行代码%如果块。

      %如果(列表)*字段内容分配给一个变量,例如%分配工人= FirstName“%分配工人= FirstName”工人扩大FirstName = % <工作> % endif

      现在分配的代码工人发送到输出只有当列表真正的

    3. 保存read-guide-param.tlc

  5. 执行read-guide-param.tlc检查输出,使用命令

    薄层色谱- r指南。rtw read-guide-param.tlc

    这个收益率

    * * *处理RECORDFILE[指南。环球套票)*字段内容分配给一个变量,例如。“%分配工人= FirstName”工人扩大FirstName =亚瑟* * *
  6. 执行read-guide-param.tlc使用命令:

    薄层色谱- r指南。rtw倾斜的read-guide-param.tlc = 0

    船向一边倾斜的= 0开关,输出只显示信息之外的如果声明。

    * * *处理RECORDFILE[指南。环球套票)* * *

审查

前面的练习检查记录文件的结构,和扩大使用TLC指令。薄层色谱中常用以下TLC指令脚本(请参阅目标语言编译器指令详细描述):

% addincludepath 使TLC找到包含文件。
% addtorecord 字段添加到现有的记录。新字段名称/值对或别名现有记录。
%分配 创建或修改变量。
% copyrecord 创建新记录和,如果适用的话,指定subrecords,包括名称/值对。来自现有记录的组件指定。
% createrecord 创建新的顶级记录和,如果适用的话,指定subrecords,包括名称/值对。
% foreach / % endforeach 迭代循环变量从0到上限。
%如果/ % endif 控制是否执行代码,如C。
%包括 插入一个文件到另一个,如C。
% mergerecord 将一个或多个记录。第一个记录包含本身加上其他记录的副本内容指定的命令,在序列。
% selectfile 直接输出到一个流或文件。
% undef var 删除(删除)var(变量或记录)范围。如果var记录的某个字段中,薄层色谱从记录中删除字段。如果var是一个记录数组(清单),TLC删除数组的第一个元素;其余元素仍然是可以访问的。只有创建通过记录% createrecord% copyrecord可以删除。
%和% endwith 添加范围简化引用块。

相关的话题