TCL基础知识

TCL基础知识

置换

TCL解释器运用规则把命令分成一个个独立的单词,同时进行必要的置换
TCL置换分为以下三类

变量置换 $
命令置换 []
反斜杠置换 \

用 $ 表示变量置换
TCL解释器会将认为 $后面为变量名,将变量置换成它的值
在这里插入图片描述
用[]表示命令置换
[]内是一个独立的TCL语句
在这里插入图片描述
用\表示反斜杠置换
换行符、空格、[、 $、等被TCL解释器当作特殊符号对待的字符,加上反斜杠后变成普通字符
在这里插入图片描述

用\t表示TAB
用\n表示换行符
在这里插入图片描述
""TCL解释器对双引号中$和[]符号会进行变量置换和命令置换
在这里插入图片描述
{}而在花括号中,所有特殊字符都将成为普通字符,TCL解释器不会对其作特殊处理
在这里插入图片描述
#表示注释
在这里插入图片描述

变量

变量就是某个容器的名称,可以储存一个值。变量的名称在程序运行期间保持不变,但是变量的值通常会不断改变。
定义:set 变量名 变量值
取值:$变量名
在这里插入图片描述
例题:假设我们想打印变量varible,后面跟一个“_1”,会发生什么呢?
在这里插入图片描述

数组

数组:TCL中数组可以储存很多值,通过元素名来进行检索。类似于某件事物(数组名)集中不同属性(元素名),每一种属性有其独立的值
定义:set 数组名(元素名)值
取值:$数组名(元素名)
在这里插入图片描述
使用array指令获取数组信息
在这里插入图片描述

列表

列表是标量的有序集合
定义set列表名{元素1 元素2 元素3 …}
取值$列表名
在这里插入图片描述
TCL中有一系列十分方便的列表操作命名
在这里插入图片描述
concat
语法格式:concat列表1 列表2
功能:将列表1 和列表2合并
在这里插入图片描述
llength
语法格式:llength列表
功能:返回列表中的元素个数
在这里插入图片描述
lindex
语法格式:lindex列表n
功能:返回列表中第n个元素(从0开始计数)
在这里插入图片描述
例题:如何得到列表list1{a b c d e f}的最后一个元素?
在这里插入图片描述
lappend
语法格式:lappend列表新元素
功能:列表末尾加入新元素
在这里插入图片描述
lsort
语法格式:lsort开光列表
功能:将列表按照一定规则排序
开关:缺省时默认按照ASCLL码进行排序
-real 按照浮点数值大小排序
-unique 唯一化,删除重复元素
在这里插入图片描述
例题:如何得到列表list1 { 0 1.2 -4 3 5}中的最小值
在这里插入图片描述

运算

数学运算
a + b
a - b
a * b
a / b
逻辑运算
a <= b
a >= b
a == b
a != b

expr
语法格式:expr运算表达式
功能:将运算表达式求值
在这里插入图片描述
如果想要进行浮点运算,只要将其中任意一个数值,写出浮点形式(有小数点)即可
在这里插入图片描述

控制流

if
语法格式:
if{判断条件}{
脚本语句
}elseif{判断条件}{
脚本语句
}else{
脚本语句
}
在这里插入图片描述

注意,上例中脚本语句的‘{’一定要写在上一行,因为如果不这样,TCL解释器会认为if命令在换行符处已结束,下一行会被当成新的命令,从而导致错位。

foreach
语法格式:foreach变量 列表 循环主体
功能:从第0个元素开始,每次按顺序取得列表的一个元素,将其赋值给变量,然后执行循环主体一次,直到列表最后一个元素。
在这里插入图片描述
在这里插入图片描述
break
语法格式:break
功能:结束整个循环过程
在这里插入图片描述
在这里插入图片描述
continue
语法格式:continue
功能:仅结束本次循环
在这里插入图片描述
在这里插入图片描述
while
语法格式:while判断语句 循环主体
功能:如果判断语句成立(返回值非0),就运行脚本,直到不满足判断条件停止循环,此时while命令中断并返回 一个空字符串
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
for
语法格式:for 参数初始化判断语句重新初始化参数循环主体
功能:如果判断语句返回值非0就进入循环,执行循环主体后,在重新初始化参数。然后再次进行判断,知道判断语句返回值为0,循环结束。
在这里插入图片描述
在这里插入图片描述

过程函数

proc
语法格式:proc函数名 参数列表 函数主体
功能:类似于C语言中的函数。即用户自定义的功能,方便多次调用
在这里插入图片描述
全局变量:在所有过程之外定义的变量
局部变量:对于在过程中定义的变量,因为它们只能在过程中被访问,并且当过程退出时会被自动删除。
指令global,可以在过程内部引用全部变量
在这里插入图片描述

正则匹配

定义:正则表达式是一种特殊的字符串模式,用来去匹配符号规则的字符串
正则表达式的\w,用来匹配一个字母、数字、下划线
正则表达式的\d,用来匹配一个数字
在这里插入图片描述
我们可以用代替重复的量词进行表示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
锚位:用来指示字符串当中的开头和结尾的位置,使我们能够匹配到正确的字符
在这里插入图片描述
在这里插入图片描述
regexp
语法格式:regexp?switches?exp string?matchVar? ?subMatchVar subMatchVar…?
功能:在字符串中使用正则表达式匹配
switches:
-nocase将字符串中的大写都当成小写看待
exp正则表达式
string用来进行匹配的字符串
matchstring表示用正则表达式匹配的所有字符串
sub1表示正则表达式中的第一个子表达式匹配的字符串
sub2表示正则表达式中的第二个子表达式匹配的字符串
例题:如何匹配字符串“abc456”
在这里插入图片描述
例题:如何匹配一个以数字开头并且以数字结尾的字符串?
在这里插入图片描述
捕获变量
通过()可以捕获字符串
例如如何将字符串“Snow is 30 years old”中的30捕获出来?
在这里插入图片描述

在这里插入图片描述

文本处理

open
语法格式:open文件打开方式(打开方式r表示读模式,w表示写模式)
功能:打开文件

gets
语法格式:gets fileld变量名
功能:gets读fileld标识的文件的下一行,并把该行赋给变量,并返回该行的字符数(文件尾返回-1)

close
语法格式:close fileid
功能:关闭文件
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/242867.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ARM AMBA 外围设备 的datasheet

可以去网页地址在线浏览对应的datasheet&#xff1a; http://infocentre.arm.com/help/index.jsp?topic/com.arm.doc.set.primecell/index.html 也可以去其中的网址中&#xff0c;下载对应的pdf版本的datasheet&#xff1a; ------------------------------------------------…

芝麻信用很高,为什么贷款还是被拒了?

之前见过这样一个朋友&#xff0c;他的芝麻信用680以上&#xff0c;借呗额度是2万&#xff0c;但是去申请贷款的时候还是被拒了。看到这很多人可能觉得为什么芝麻信用这么高&#xff0c;贷款还是会被拒了呢&#xff1f;其实芝麻信用不能等同于个人信用&#xff0c;就目前情况来…

Synopsys TCL

Synopsys TCL TCL在EDA工具中的扩展与应用 通过对设计的案例的分析&#xff0c;了解和学习DC获取电路并进行解析的方法 综合软件当中TCL的常见指令 语法格式&#xff1a;get_ports portsName 指令功能&#xff1a;返回design中对应的ports object 语法格式&#xff1a;ge…

只有房子没有工作能贷款吗?

通常来说抵押贷款需要满足几个基本的条件&#xff0c;有可供抵押的房产&#xff0c;有稳定的工作和收入来源&#xff0c;信用良好&#xff0c;如果借人只有房产&#xff0c;没有工作一般是比较难贷到款的。原因是没有工作就没有收入来源&#xff0c;对还款就没有保障。可能有的…

总线及数据传输技术【待完善】

作者&#xff1a;桂。 时间&#xff1a;2017-08-05 14:41:36 链接&#xff1a;http://www.cnblogs.com/xingshansi/p/7290224.html 前言 最近的工作内容涉及硬件&#xff0c;三个高频词汇&#xff1a;总线、接口、协议&#xff0c;例如I2C、PCIe、RS-232C、RapidIO&#xff0…

初识TCL

初识TCL 安装TCL编辑器 如果你的电脑上装有编写TCL脚本的软件&#xff08;Vivado等&#xff09;&#xff0c;执行在命令串口输入tcl&#xff0c;点击就行 输入expr 2 2 每一条命令都由一个或多个“单词”组成&#xff0c;单词之间用空格或制表符&#xff08;即空白字符&…

如何看透借款人的隐形负债?

借款人的负债有两种情况&#xff0c;一种是显性负债&#xff0c;另一种是隐性负债。显性负债比较好判断&#xff0c;而隐性负债则比较难以判断。因此如何全面的掌握借款人真实负债是每个信贷员和风控人员都必须掌握的功课。一、显性负债显性负债就是通过材料可以直接看出的负债…

【C++设计技巧】C++中的RAII机制

随笔- 427 文章- 0 评论- 4作者&#xff1a;gnuhpc 出处&#xff1a;http://www.cnblogs.com/gnuhpc/ 1.概念 Resource Acquisition Is Initialization 机制是Bjarne Stroustrup首先提出的。要解决的是这样一个问题&#xff1a; 在C中&#xff0c;如果在这个程序段结束时需要…

PHP的表单获取与HHTP请求方式

PHP获取表单数据的方法PHP获取表单数据的方法主要有GET、POST和REQUEST三种方式。 注意&#xff0c;提交表单的方法只有POST和GET两种。POST和GET都可以向Web服务器传输数据。 GET与POST对比 对比GETPOST附加形式URL之后HTML HEADER参数处理方式URL编码无URL编码传输数据的大小…

产生脉冲之间的延迟

产生脉冲之间的延迟 题目要求 FPGA产生两个输出脉冲&#xff0c;要求这两个脉冲之间的延迟为0.5ns&#xff0c;请描述你的实现方案 题目分析 1 使用计数器延迟不太可能&#xff0c;FPGA内部逻辑没有一个专用的delaybuffer。 2 IOB (input output block) iodelay。去实现小分辨…

Chipscope使用

作者&#xff1a;桂。 时间&#xff1a;2017-08-07 06:47:31 链接&#xff1a;http://www.cnblogs.com/xingshansi/p/7297482.html 前言 Chipscope在FPGA调试中被用来观察内部信号&#xff0c;程序里加入Chipscope相当于有了数字示波器。 本文主要记录Chipscope的基本操作&…

学习网址汇总

编程相关的学习网站&#xff1a;网络编程网站开发教程大全&#xff0c;内含有大量的参考手册&#xff0c;博文阅读&#xff0c;优质项目、在线工具、在线代码、开放平台等&#xff0c;囊括PHP、SQL、HTML、JS等w3school&#xff0c;你可以找到你所需要的所有的网站建设教程&…

设计FIFO深度

设计FIFO深度 假设FIFO的写时钟为100MHZ&#xff0c;读时钟为80MHZ。在FIFO输入侧写数据侧&#xff0c;每100个时钟&#xff0c;写入80个数据&#xff0c;FIFO读出侧每个时钟读出一个数据。设计合理的FIFO深度&#xff0c;使FIFO不会溢出。 如果读出侧每3个时钟读出1个数据&am…

银行假流水怎么识破?

银行流水作为借款人最有效的还款证明&#xff0c;审核的时候一定要特重视&#xff0c;特别是要注意区分借款人的假流水。&#xff08;1&#xff09;真假流水有哪些特征真流水特征&#xff1a;银行流水能真实的反映借款人的工作或生意情况&#xff0c;能从借款人的生意来往合同中…

无线通信上课笔记

无线通信课上笔记无线通信的概念无线通信&#xff08;Wireless Comminication&#xff09;是利用电磁波信号可以在自由空间中传输的特性进行信息交换的一种通信方式&#xff0c;无线通信与有线通信相对。特点&#xff1a;新、快、移动通信&#xff1a;在移动中实现无线通信&…

Qt5 中的 signal/slot 新语法

Qt 5 Alpha 已经发布。我们会在后面的文章中看到 Qt 5 的新变化。今天&#xff0c;我们先来看一下 Qt 5 带来的一个最主要的变化&#xff1a;signal/slot 机制的改变。Qt 5 之前的语法 在 Qt 5 之前&#xff0c;我们需要使用下面的语句来链接 signal 和 slot&#xff1a; 12con…

模拟电子技术基础笔记

模拟电子技术基础笔记 二极管的特性 1 单向导电性&#xff08;小写是交流&#xff0c;大写是直流&#xff09; 二极管的应用 1、整流二极管 利用二极管单向导电性&#xff0c;可以把方向交替变化的交流电变换成单一方向的脉动直流电。 2、开关元件 二极管在正向电压作用下电阻…

国家标准GB7665-87传感器

传感器的定义“能感受规定的被测量并按照一定的规律转换成可用信号的器件或装置&#xff0c;通常由敏感元件和转换元件组成”。 传感器是一种检测装置&#xff0c;能感受到被测量的信息&#xff0c;并能将检测感受到的信息&#xff0c;按一定规律变换成为电信号或其他所需形式的…

simulink简介

simulink简介 simulink是基于matlab的框图设计环境&#xff0c;可以用来对各种动态系统进行建模、分析和仿真&#xff0c;它的应用领域十分广泛&#xff0c;任何能用数学模型来描述的系统都可以在simulink中进行仿真分析&#xff0c;如:空气动力学、导航制导、通讯、电子、机械…

商务英语老师给的6个建议

作为学了多年学习英语&#xff0c;应该做这些研读两套英语教材&#xff08;大学英语剑桥商务英语&#xff09;读两本小薄本&#xff08;两个英语原著&#xff09;独立看两部英语原版电影学习一个国外的语言文化&#xff0c;至少会唱两首英文歌&#xff08;圣诞歌会唱&#xff0…