【Visual Lisp】人机交互与数据处理(表除外)-lisp
;;本专题所讲述的内容是人机交互以及常规数据处理技术
;;★★★01.人机交互★★★
;;△△△键盘输入交互△△△
(getint "请输入整数");;从键盘输入整数,如果不是整数则重复提示输入整数直到输入的是整数。类似的函数[输入整数 getreal][输入字符串 getstring][控制和输入关键字 initget getkword]
;;△△△数据输出△△△
(princ "The \"allowable\" tolerance is\"" fileDsc);;输出到文件中为 The "allowable" tolerance is" 反斜杆\表转义,但是返回值还是有斜杆,只有输出到文件中时无斜杆,而prin1和print则不管是输入到文件中还是返回值斜杆还是斜杆;对于prompt只能输出在命令行不能输入文件,反斜杆\同样与princ一样表示转义
(vl-prin1-to-string "c:\\");;返回 "\"c:\\\\\"" 类似于prin1的输出
(vl-princ-to-string "c:\\");;返回 "c:\\" 类似于princ的输出
;;△△△屏幕交互△△△
(getpoint);;屏幕取点返回点;类似的有[带基点出现矩形框取点 getcorner][两点取长度 getdist][输入十进制度或鼠标指定返回弧度 getangle getorient]
(polar pt ang dist);;根据点、方位角和距离求点[求两点距离 distance][两点连线的角度 angle][求交点 inters 最后一个参数为nil时交点可以在延长线上][对象捕捉获取特殊点 osnap][屏幕点两点取长度 getdist]
(trans '(1 2 3) 0 1);;将点从一个坐标系转换为另外一个坐标系内的点,也就是点的实际位置不变但是在不同的坐标系内点的坐标值不一样。
;;★★★02.数据处理★★★
(+ 1 2 3);;加法运算,同类的数的运算有[减 - ]、[乘 * ]、[除 / ]、[余数 rem ]、[最大公约数 gcd ]、[最大值 max ]、[最小值 min ]、[e的N次幂 exp]、[10为底N的对数 log]、[数的N次方 expt]、[开方 sqrt]、[绝对值 abs]、[是否是负数 minusp]、[数是否是0 zerop]、[是否是数 numberp]、[数转实数 float]、[数取整 fix]、[正弦 sin]、[余弦 cos]、[反正切 atan]
(quote a);;禁止求值,返回 a 也可以用 'a 表示,返回的也是a
(eval b);;对b求值,返回求值结果(setq a 3) (setq b 'a),返回值为3。
(type data);;返回data的数据类型,数据类型包括有图元名(ename)、外部objectArx应用程序(exrxsubr)、文件描述符(file)、整数(int)、表(list)、函数分页表(pagetb)、选择集(pickset)、浮点数(real)、safearray、字符串(str)、内部AutoLISP函数(subr)、符号(sym)、变体(variant)、从lisp中加载的用户定义函数(usubr)、Active对象(VLA-object)
(atom 'a);;判断是否是原子,是则返回T,否则返回nil
(null a);;判断是否为空,是空返回T,否则返回nil
(boundp 'a);;判断是否非空,非空返回T,否则返回nil。例子(setq a 1) (boundp 'a) 返回T。注意格式,a前面有单引号
(equal 表达式1 表达式2 [允许误差]);;判断两个表达式的值是否在允许的误差范围内,如果是则返回T,否则返回nil
;;△△△转换△△△
(cvunit 1 "minute" "second");;单位转换,将1分钟转换为秒为单位的值60
(ascii "a");;将字符串字符转换为对应ascii码;[数字ascii码转对应字符的字符串 chr]
(itoa 123);;整数转字符串;[字符串转整数 atoi][字符串转实数 atof][根据模式和精度将数转换为字符串 rtos 互补函数为distof][弧度转指定模式角度的字符串 angtos 互补函数 angtof]
;;△△△字符串处理△△△
(strcat "ab" "c");;将几个字符串按先后顺序拼接为一个字符串"abc"
(substr "abcdef" 1 2);;截取字符串,序号从1开始
(strcase "abcDEF" T);;字符串大小写转换,此处是转换为小写,最后一个参数不写则转换为大写
(strlen "你123");;字符串长度
(wcmatch "A123sdfew" "A*");;字符串正则表达式匹配
(vl-string-elt "123abc" 3);;返回字符串内指定位置字符的ascii码值 97
(vl-string-left-trim "123456" "12b3456d");;删除第二个参数左边的在第一个参数字符串字符出现过的字符.也就是开始遍历第二个参数的第一个字符,如果在第一个参数字符串中有这个字符就删除,如果遇到遍历到的字符在第一个参数字符串中不存在此字符就停止遍历删除.就像此例的b,所以返回值是"b3456d"[类似的从右边来删除 vl-string-right-trim][两边都进行 vl-string-trim 相当于执行了前面两个函数]
(vl-string-mismatch "vl-abc" "vl-def");;返回字符串从指定位置开始字符相同的长度 3
(vl-string-position (ascii "a") "123abc");;返回指定ascii码值对应字符在字符串中的位置,从0开始.可以指定开始搜索的位置和是从左开始还是从右开始,默认从左从0开始
(vl-string-search "abc" "123abcdef");;搜索指定子串在字符串中出现的位置,可以指定搜索的开始位置.序号从0开始
(vl-string-subst "789" "abc" "456abc");;子字符串的替换,用"789"替换"456abc"中的"abc"返回"456789"
(vl-string-translate "abcABC" "123123" "A is a, B is b, C is C");;用第一个参数中的字符一一对应第二个参数中的字符替换第三个参数字符串返回"1 is 1, 2 is 2, 3 is 3"
(vl-string->list 字符串);;详见《表处理专题》
------end------
【Visual Lisp】人机交互与数据处理(表除外)-lisp的更多相关文章
- Lisp的本质(The Nature of Lisp)
Lisp的本质(The Nature of Lisp) 作者 Slava Akhmechet 译者 Alec Jang 出处: http://w ...
- visual studio的项目属性表
最近发现一个有趣的东西:visual studio的项目属性表 我下载了cocos2d-x-3.0alpha1,然后发现HelloLua项目配置里没有配include搜索目录和依赖库以及一个Marco ...
- 清理Visual Studio 2017的项目历史记录或手工修改Visual Studio 2017的注册表设置
Visual Studio 2017的"最近的文件列表"和"项目列表"总是删了之后重启电脑又出现(PS:这期间没有打开过项目,更没打开过VS). 一怒之下,按照 ...
- lisp学习总结(二)-----lisp应该探索发展的方向
现在流行一种语言叫做Clojure,他是lisp直接嫁接到java的结果,但是我就感觉这却成为lisp的失败. 因为lisp最强大最有优势的能力是构造抽象,构造设计思想,而不是运行期以确定的方式运行, ...
- Visual Studio Code 键盘参考表
2019年4月6日,对照中英翻译. 一般 Ctrl+Shift+P, F1 显示命令调色板 Ctrl+P 快速打开,转到文件… Ctrl+Shift+N 新建窗口/实例 Ctrl+Shift+W ...
- Lisp简明教程
此教程是我花了一点时间和功夫整理出来的,希望能够帮到喜欢Lisp(Common Lisp)的朋友们.本人排版很烂还望多多海涵! <Lisp简明教程>PDF格式下载 <Lisp简明教程 ...
- 转-为什么Lisp语言如此先进?(译文)
之前在看黑客与画家的时候看过,今天重温,完全不一样的感觉! 原文地址:http://www.ruanyifeng.com/blog/2010/10/why_lisp_is_superior.html ...
- C,C++,Lisp,Java,Perl,Python
(译注:圣经记载:在远古的时候,人类都使用一种语言,全世界的人决定一起造一座通天的塔,就是巴别塔,后来被上帝知道了,上帝就让人们使用不同的语言,这个塔就没能造起来. 巴别塔不建自毁,与其说上帝的分化将 ...
- 奇怪的Lisp和难懂的计算机程序的构造和解释
最近用新买的 Kindle 看<黑客与画家>的Lisp部分,发现作者 Paul Graham 很推崇 Lisp 语言,并且认为其它语言都没有Lisp简洁“成熟”,并且举例证明其它语言都在往 ...
随机推荐
- ICMP Protocol
[ICMP Protocol] 参考: 1.ICMP Types and Codes:http://www.nthelp.com/icmp.html 2.RFC 792 - Internet Cont ...
- centos 6.5 msyql5.6安装
MySQL 安装 安装mysql前需要查询系统中含有的有关mysql的软件. rpm -qa | grep -i mysql 如下 代表有mysql ,则先进行卸载 mysql-libs-5.1. ...
- iOS 上架被拒原因保存
一.后台一直在获取用户的定位,需要给用户电池消耗提示 Your app uses the Location Background mode but does not include the requi ...
- videoconverter转换
以前录制的avi用vfw可以解码的,但是现在变成win7系统了,无法解码了.只好用视频转换软件把avi转成无压缩的. 选择losses uncompressed avi,点进去选UYVY就行了.
- iScroll-5 API 中文版
http://wiki.jikexueyuan.com/project/iscroll-5/ http://www.mamicode.com/info-detail-331827.html IScro ...
- Brainstorm-the walkthrough example: Image Classification
(1) 运行create data,其中包括下载cifar10,并转换为hdf5格式(详见百度百科:http://baike.baidu.com/view/771949.htm#4_2): cifar ...
- PHP读取Excel数据写入数据库(包含图片和文字)
public function test(){ $exts = 'xlsx'; //导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入 import("Org ...
- Java(多态)动手动脑
1> 请看以下"变态"的类(参看示例ParentChildTest.java) 上述代码的特点是: 子类和父类定义了一模一样的字段和方法 运行以下测试代码 1. 上边的程序运 ...
- [goa]golang微服务框架学习(二)-- 代码自动生成
之前用过go语言的反射来做一些代码生成,参考这篇. 但是这种方式,入侵太强,需要执行对应的申明调用, 所以对GOA框架的自动生成非常感兴趣,于是仔细研究了一下,发现用的比较巧妙, 这里先卖个关子,先看 ...
- 我眼中的项目leader
个人觉得项目leader应该具备一下基础: 1.技术能力 2.领导能力 3.过滤产品不合理需求能力 4.项目周期把控能力