【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简洁“成熟”,并且举例证明其它语言都在往 ...
随机推荐
- Spring - constructor-arg和property
1.说明 constructor-arg:通过构造函数注入. property:通过setter对应的方法注入. 2.constructor-arg的使用示例 (1).Model代码: 1 2 ...
- nullcon HackIM 2016 -- Programming Question 5
Dont blink your Eyes, you might miss it. But the fatigue and exhaustion rules out any logic, any wil ...
- jquery实现淡入淡出
fade方法包括四个: (1)fadeIn(speed,callback):淡入的方法,speed代表淡入的速度,可以是slow,fast,毫秒,不填等 例如: $(document).ready(f ...
- B. Shaass and Bookshelf DP
http://codeforces.com/contest/294/problem/B 据说是贪心,我用了一个复杂度是2e8的dp水过去了. 其实这题就是给你n个数,每个数有两个权值,分成两组,使得第 ...
- UITextView 显示不全的问题
//设置UITextView的内边距 textView.contentInset = UIEdgeInsetsMake(0, 0, 20, 0);
- php js 排序
编写背景及排序 规则 公司需要对游戏进行一系列的排序,在这里只说我自己遇到问题的哪一段 //规则:$plat数据要根据$sort里的sort为相应 可以输入一个数字,即为该平台: 解决思路:将$so ...
- spring 多线程 注入 服务层 问题
在用多线程的时候,里面要用到Spring注入服务层,或者是逻辑层的时候,一般是注入不进去的.具体原因应该是线程启动时没有用到Spring实例不池.所以注入的变量值都为null. 详细:http://h ...
- 【CodeVS1080】线段树练习
Description 一行N个方格,开始每个格子里都有一个整数.现在动态地提出一些问题和修改:提问的形式是求某一个特定的子区间[a,b]中所有元素的和:修改的规则是指定某一个格子x,加上或者减去一个 ...
- mysql备份文件注释乱码处理工具
我们有时候需要做mysql数据库的注释,可是备份出来的是乱码,怎么办呢? 本工具软件来帮你的忙. 将GBK库备份后的文本文件中夹带的UTF8乱码转换为GBK编码,就不再乱码了. http://down ...
- 选择本地照片之后即显示在Img中(客户体验)
最近转战MVC项目,然后又再次遇到照片上传的实现,之前都是使用ASP.NET,虽然也有照片上传,而且出于客户体验考虑, 也实现了选择本地照片之后即时显示在IMG中,在这里就简单介绍其实现(ASP.NE ...