CL脚本语言培训(1)课件

上传人:阳*** 文档编号:26093407 上传时间:2021-08-05 格式:PPT 页数:31 大小:291KB
收藏 版权申诉 举报 下载
CL脚本语言培训(1)课件_第1页
第1页 / 共31页
CL脚本语言培训(1)课件_第2页
第2页 / 共31页
CL脚本语言培训(1)课件_第3页
第3页 / 共31页
资源描述:

《CL脚本语言培训(1)课件》由会员分享,可在线阅读,更多相关《CL脚本语言培训(1)课件(31页珍藏版)》请在装配图网上搜索。

1、CL脚 本 语 言 培 训 (1 ) 1日 期 : 2012-03-122011-1-1 CL脚 本 语 言 培 训 (1 ) 2 1、 TCL脚 本 语 言 介 绍2、 TCL的 语 法3、 TCL的 变 量4、 TCL的 表 达 式5、 TCL常 用 命 令6、 TCL的 控 制7、 TCL的 过 程8、 TCL的 字 符 串 操 作9、 TCL的 list10. 学 习 TCL的 一 些 建 议 和 方 法针 对 TCl脚 本 语 言 的 新 手2小 时田 显 兰使 没 有 接 触 过 TCL脚 本 语 言 的 同事 对 TCL脚 本 语 言 的 基 础 概 念 和基 础 知 识 有 一

2、 定 的 了 解 。 可 以 使用 TCL脚 本 语 言 进 行 简 单 的 编 程 。培 训 目 的培 训 对 象培 训 讲 师 学 习 重 点培 训 课 时 1、 TCL脚 本 语 言 介 绍 TCL脚 本 语 言 培 训 TCL(Tool Command Language)是 一 种 解 释 执 行 的 脚 本 语言 提 供 通 用 的 编 程 能 力 : 支 持 变 量 、 过 程 和 控 制 结 构 , 经 常 被用 于 快 速 原 型 开 发 , 脚 本 编 程 , GUI和 测 试 等 方 面 TCL拥 有 一 个 功 能 强 大 的 固 有 的 核 心 命 令 集 , 同 时

3、支 持 根 据需 要 对 TCL语 言 进 行 扩 展 解 释 器 同 等 对 待 固 有 命 令 集 和 扩 展 命 令 集 TCL的 优 点 : 语 法 简 单 , 解 释 执 行 , 可 扩 展 , 跨 平 台 2、 TCL的 语 法简 单 的 讲 :TCL语 言 的 语 法 就 是 一 些 TCL解 释 器 怎 样 对 TCL命 令 进 行 分 析 的 规 则 的 集 合 。TCL命 令 的 基 本 语 法 为 : command arg1 arg2 arg3 TCL脚 本 语 言 培 训 2、 TCL的 语 法2-1、 脚 本 、 命 令 和 单 词 符 号一 个 TCL脚 本 可

4、以 包 含 一 个 或 多 个 命 令 。 命 令 之 间 必 须 用 换 行 符 或 分 号 隔 开 。 在所 有 TCL脚 本 中 , 系 统 内 部 的 命 令 名 是 小 写 格 式 Example: set a 100 set b 101 set c 102;set d 103TCL的 每 一 个 命 令 包 含 一 个 或 几 个 单 词 , 第 一 个 单 词 代 表 命 令 名 , 另 外 的 单 词 则 是 这 个 命 令 的 参 数 , 单 词 之 间 必 须 用 空 格 或 TAB键 隔 开 。 命 令 之 间 是 可 以 嵌 套 的Example: set a 100

5、set b expr $a +1 TCL脚 本 语 言 培 训 2-2、 置 换 的 引 入2、 TCL的 语 法TCL解 释 器 对 一 个 命 令 的 求 值 过 程 分 为 两 部 分 : 分 析 和 执 行 。 在 分 析 阶 段 , TCL 解 释 器 运 用 规 则 把 命 令 分 成 一 个 个 独 立 的 单 词 , 同 时 进 行 必 要 的 置 换 (substitution); 在 执 行 阶 段 , TCL 解 释 器 会 把 第 一 个 单 词 当 作 命 令 名 , 并 查 看 这 个 命 令 是 否 有 定义 , 如 果 有 定 义 就 激 活 这 个 命 令 对

6、 应 的 C/C+过 程 , 并 把 所 有 的 单 词 作 为 参 数 传递 给 该 命 令 过 程 , 让 命 令 过 程 进 行 处 理 。Example: set log “test” set current “test.tcl” LOG:AppErr $log expr $namespace current:current “error” 置 换 可 以 发 生 在 包 含 命 令 名 在 内 的 每 一 个 单 词 中 , 而 且 置 换 可 以 嵌 套Example: set a 1 set b$a 2 TCL提 供 三 种 形 式 的 置 换 : 变 量 置 换 、 命 令 置

7、 换 和 反 斜 杠 置 换 。 TCL脚 本 语 言 培 训 2-3、 三 种 置 换 类 型2、 TCL的 语 法变 量 置 换 由 一 个 $ 符 号 标 识 , 变 量 置 换 会 导 致 变 量 的 值 插 入 一 个 单 词 中 。 TCL解释 器 在 分 析 一 个 变 量 置 换 时 , 只 把 从 $ 往 后 直 到 第 一 个 不 是 字 符 , 数 字 或 下 划 线的 字 符 之 间 的 单 词 符 号 作 为 被 置 换 的 变 量 的 名 字 Example: set a “hello”;set a_1 “hello”; set a-1 “hello” set b

8、“$a world!”;set c “$a_1 world!”;set d “$a-1 world!”命 令 置 换 是 由 括 起 来 的 TCL命 令 及 其 参 数 。 命 令 置 换 会 导 致 某 一 个 命 令 的 所 有或 部 分 单 词 被 另 一 个 命 令 的 结 果 所 代 替 。 中 必 须 是 一 个 合 法 的 TCL脚 步 , 长 度不 限 。 中 脚 本 的 值 为 最 后 一 个 命 令 的 返 回 值Example: set b expr 100*10反 斜 杠 替 换 相 当 于 C语 言 中 反 斜 杠 的 作 用 , 主 要 用 于 在 单 词 符 号

9、 中 插 入 诸 如 换 行 符 、 空 格 、 、 $等 被 TCL解 释 器 当 作 特 殊 符 号 对 待 的 字 符 Example: set a a set b $100 TCL脚 本 语 言 培 训 2-4、 双 引 号 和 花 括 号2、 TCL的 语 法除 了 使 用 反 斜 杠 外 , TCL提 供 另 外 两 种 方 法 来 使 得 解 释 器 把 分 隔 符 和 置 换 符 等 特殊 字 符 当 作 普 通 字 符 , 而 不 作 特 殊 处 理 , 这 就 要 使 用 双 引 号 (“”)和 花 括 号 ()。 TCL解 释 器 对 双 引 号 中 的 各 种 分 隔

10、符 将 不 作 处 理 , 但 是 对 换 行 符 及 $和 两 种 置 换符 会 照 常 处 理 。 Example: set a 1;set b 2 puts “c = expr $a+$b”而 在 花 括 号 中 , 所 有 特 殊 字 符 都 将 成 为 普 通 字 符 , 失 去 其 特 殊 意 义 , TCL解 释 器不 会 对 其 作 特 殊 处 理 。 Example: set a 1;set b 2 puts c = expr $a+$b TCL脚 本 语 言 培 训 2-5、 注 释2、 TCL的 语 法TCL中 的 注 释 符 是 , 和 直 到 所 在 行 结 尾 的

11、所 有 字 符 都 被 TCL看 作 注 释 , TCL解 释 器 对 注 释 将 不 作 任 何 处 理 。 不 过 , 要 注 意 的 是 , 必 须 出 现 在 TCL解 释 器 期望 命 令 的 第 一 个 字 符 出 现 的 地 方 , 才 被 当 作 注 释 。Example: #This is a comment set a 100 # Not a comment set b 100 ;#This is a comment TCL脚 本 语 言 培 训 3、 变 量 TCL脚 本 语 言 培 训 TCL支 持 两 种 类 型 的 变 量 : 简 单 变 量 和 数 组 。简 单

12、变 量 包 含 两 个 部 分 : 名 字 和 值 。 名 字 和 值 都 可 以 是 任 意 字 符 串 。 例 如 一 个 名为 “ 1323 7#访 问 当 前 过 程 的 调 用 者 的 调 用 者 中 的 other upvar #0 other x ;#访 问 全 局 的 变 量 other 7-4、 引 用 upvar 8、 TCL的 字 符 串 操 作 ( 一 ) TCL脚 本 语 言 培 训 string命 令 具 有 强 大 的 操 作 字 符 串 的 功 能 , 其 中 的 option选 项 多 达 20个string compare ?-nocase? ?-lengt

13、h int? string1 string2 把 字 符 串 string1和 string2进 行 比 较 ,返 回 值 为 -1、 0或 1,分 别 对 应 string1小 于 、 等于 或 大 于 string2。 如 果 有 -length 参 数 , 那 么 只 比 较 前 int 个 字 符 , 如 果 int为 负数 , 那 么 这 个 参 数 被 忽 略 。 如 果 有 -nocase参 数 , 那 么 比 较 时 不 区 分 大 小 写 。 string equal ?-nocase? ?-length int? string1 string2 把 字 符 串 string

14、1和 string2进 行 比 较 , 如 果 两 者 相 同 , 返 回 值 为 1, 否 则 返 回 0。其 他 参 数 与 string compare同 。 string first string1 string2 ?startindex?在 string2 中 从 头 查 找 与 string1匹 配 的 字 符 序 列 , 如 果 找 到 , 那 么 就 返 回 匹 配 的第 一 个 字 母 所 在 的 位 置 (0-based)。 如 果 没 有 找 到 , 那 么 返 回 -1。 如 果 给 出 了startindex变 量 , 那 么 将 从 startindex处 开 始

15、查 找 。 8、 TCL的 字 符 串 操 作 ( 二 ) TCL脚 本 语 言 培 训 string index string charIndex 返 回 string 中 第 charIndex个 字 符 (0-based)。 charIndex可 以 是 下 面 的 值 : 整 数 n: 字 符 串 中 第 n个 字 符 (0-based) end : 最 后 一 个 字 符 end 整 数 n: 倒 数 第 n个 字 符 。 string index abcd end-1 返 回 字 符 c 如 果 charIndex小 于 0, 或 者 大 于 字 符 串 string的 长 度 ,

16、 那 么 返 回 空 。string last string1 string2 ?startindex?参 照 string first.唯 一 的 区 别 是 从 后 往 前 查 找 string length string 返 回 字 符 串 string的 长 度 . string match ?-nocase? pattern string 如 果 pattern 匹 配 string,那 么 返 回 1,否 则 返 回 0.如 果 有 -nocase参 数 ,那 么 就 不 区 分大 小 写 . 8、 TCL的 字 符 串 操 作 ( 三 ) TCL脚 本 语 言 培 训 strin

17、g range string first last返 回 字 符 串 string中 从 第 first个 到 第 last个 字 符 的 子 字 符 串 (0-based)。 如 果 first0,那 么 first被 看 作 0, 如 果 last大 于 或 等 于 字 符 串 的 长 度 , 那 么 last被 看 作 end, 如果 first比 last大 , 那 么 返 回 空 。 string repeat string count返 回 值 为 : 重 复 了 string字 符 串 count次 的 字 符 串string replace string first last

18、?newstring?返 回 值 为 : 从 字 符 串 string 中 删 除 了 第 first到 第 last个 字 符 (0-based)的 字 符 串 ,如 果 给 出 了 newstring变 量 , 那 么 就 用 newstring替 换 从 第 first到 第 last个 字 符 。 如果 first0, 那 么 first被 看 作 0, 如 果 last大 于 或 等 于 字 符 串 的 长 度 , 那 么 last被 看作 end, 如 果 first比 last大 或 者 大 于 字 符 串 string的 长 度 或 者 last小 于 0, 那 么 原 封不

19、动 的 返 回 string string tolower string ?first? ?last? 返 回 值 为 : 把 字 符 串 string转 换 成 小 写 后 的 字 符 串 , 如 果 给 出 了 first和 last变 量 ,就 只 转 换 first和 last之 间 的 字 符 。 9、 TCL的 list( 一 ) TCL脚 本 语 言 培 训 list这 个 概 念 在 TCL中 是 用 来 表 示 集 合 的 。 TCL中 list是 由 一 堆 元 素 组 成 的 有 序 集合 , list可 以 嵌 套 定 义 , list每 个 元 素 可 以 是 任 意

20、 字 符 串 , 也 可 以 是 list。 list是 TCL中 比 较 重 要 的 一 种 数 据 结 构 , 对 于 编 写 复 杂 的 脚 本 有 很 大 的 帮 助 , TCL提 供 了很 多 基 本 命 令 对 list进 行 操 作 list命 令 用 于 创 建 一 个 list命 令 格 式 : list ? value value.? concat命 令 把 多 个 list合 成 一 个 list, 每 个 list变 成 新 list的 一 个 元 素命 令 格 式 :concat list ?list.? lindex命 令 返 回 list的 第 index个 (0

21、-based)元 素 命 令 格 式 : lindex list index llength命 令 返 回 list的 元 素 个 数命 令 格 式 : llength list 9、 TCL的 list(二 ) TCL脚 本 语 言 培 训 linsert命 令 返 回 一 个 新 串 , 新 串 是 把 所 有 的 value参 数 值 插 入 list的 第 index个 (0-based)元 素 之 前 得 到命 令 格 式 : linsert list index value ?value.? lreplace命 令 返 回 一 个 新 串 , 新 串 是 把 list的 第 fir

22、st (0-based)到 第 last 个 (0-based)元 素 用 所 有 的 value参 数 替 换 得 到 的 。 如 果 没 有 value参 数 , 就 表 示 删 除 第 first到第 last个 元 素 。 命 令 格 式 : lreplace list first last ?value value .? lrange 命 令 返 回 list的 第 first (0-based)到 第 last (0-based)元 素 组 成 的 串 ,如 果 last的 值 是 end。 就 是 从 第 first个 直 到 串 的 最 后 命 令 格 式 :lrange li

23、st first last lappend命 令 把 每 个 value的 值 作 为 一 个 元 素 附 加 到 变 量 varname后 面 , 并 返 回变 量 的 新 值 , 如 果 varname不 存 在 , 就 生 成 这 个 变 量 命 令 格 式 : lappend varname value ?value.? 9、 TCL的 list(三 ) TCL脚 本 语 言 培 训 lsearch 命 令 返 回 list中 第 一 个 匹 配 模 式 pattern的 元 素 的 索 引 , 如 果 找 不 到 匹 配就 返 回 -1命 令 格 式 : lsearch ?-exac

24、t? ?-glob? ?-regexp? list pattern -exact、 -glob、 -regexp是 三 种 模 式 匹 配 的 技 术 。 -exact表 示 精 确 匹 配 ; -glob的匹 配 方 式 和 string match命 令 的 匹 配 方 式 相 同 ; -regexp表 示 正 规 表 达 式 匹 配 ,缺 省 时 使 用 -glob匹 配 lsort命 令 返 回 把 list排 序 后 的 串 命 令 格 式 : lsort ?options? list options可 以 是 如 下 值 : -ascii 按 ASCII字 符 的 顺 序 排 序

25、比 较 .这 是 缺 省 情 况 。 -dictionary 按 字 典 排 序 ,与 -ascii不 同 的 地 方 是 : (1)不 考 虑 大 小 写 (2)如 果 元 素 中 有 数 字 的 话 ,数 字 被 当 作 整 数 来 排 序 . 因 此 : bigBoy排 在 bigbang和 bigboy之 间 , x10y 排 在 x9y和 x11y之 间 . -integer 把 list的 元 素 转 换 成 整 数 ,按 整 数 排 序 . -real 把 list的 元 素 转 换 成 浮 点 数 ,按 浮 点 数 排 序 . -increasing 升 序 (按 ASCII字

26、 符 比 较 ) -decreasing 降 序 (按 ASCII字 符 比 较 ) -command command TCL自 动 利 用 command 命 令 把 每 两 个 元 素 一 一 比 较 ,然 后 给 出 排 序结 果 。 9、 TCL的 list(四 ) TCL脚 本 语 言 培 训 split命 令 把 字 符 串 string按 分 隔 符 splitChars分 成 一 个 个 单 词 , 返 回 由 这 些 单 词组 成 的 串 。 如 果 splitChars 是 一 个 空 字 符 , string被 按 字 符 分 开 。 如 果splitChars没 有 给

27、 出 ,以 空 格 为 分 隔 符命 令 格 式 : split string ?splitChars? join命 令 把 list的 所 有 元 素 合 并 到 一 个 字 符 串 中 , 中 间 以 joinString分 开 。 缺 省 的joinString是 空 格 命 令 格 式 :join list ?joinString? Join命 令 式 split命 令 的 逆 。 10、 学 习 TCL的 一 些 建 议 和 方 法 TCL脚 本 语 言 培 训 Help帮 助 文 档 2.命 令 帮 助 提 示 3.教 程 文 档 4. 实 地 操 作 CL脚 本 语 言 培 训 (1 ) 3 1 谢 谢 各 位 !

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!