20060510412 发表于 2018-9-10 16:23:42

请教wcmatch函数的参数问题

本帖最后由 20060510412 于 2018-9-10 16:25 编辑


如上图的代码,其中不太懂的就是wcmatch函数中那几个通配符,"\"*\""这个代表什么意思呢,还有"\"*[~\"]"和"~*[~\"]*"?

ZZXXQQ 发表于 2018-9-10 16:53:10

\是转义符,因为wcmatch函数后面要求的是字符串,所以双引号不能出现在字符串中,要用转义符转换。
在字串中用\"代替"。
方括弧中的内容是独立的选择项,[~\"]是非双引号
*代表一串字符。

张大锤 发表于 2018-9-10 16:56:30

朋友你这个是用的什么软件啊 括号与括号有虚线连接提示看这很方便啊
我使用的editplus 感觉没你这个好用啊 方便分享一下嘛

20060510412 发表于 2018-9-10 17:25:06

张大锤 发表于 2018-9-10 16:56
朋友你这个是用的什么软件啊 括号与括号有虚线连接提示看这很方便啊
我使用的editplus 感觉没你这个好用 ...

ultra edit

20060510412 发表于 2018-9-10 18:08:27

本帖最后由 20060510412 于 2018-9-10 18:21 编辑

ZZXXQQ 发表于 2018-9-10 16:53
\是转义符,因为wcmatch函数后面要求的是字符串,所以双引号不能出现在字符串中,要用转义符转换。
在字串 ...
谢谢了,总算懂了。
不过还有个问题,下面那个logand函数,我知道是逻辑与,但是在这里是起什么作用呢?

20060510412 发表于 2018-9-11 07:20:46

ZZXXQQ 发表于 2018-9-10 16:53
\是转义符,因为wcmatch函数后面要求的是字符串,所以双引号不能出现在字符串中,要用转义符转换。
在字串 ...

您好,还有个问题,这个子程序是把csv里面的一行记录读出到列表中,使用了递归,递归的退出条件是什么呢?总不会一直递归下去吧?

Andyhon 发表于 2018-9-11 08:57:16

经典范例:
(defun fact (x) (cond ((= x 0) 1) (t (* x (fact (- x 1))))))


;This is a programming example of a recursive function
;which calculates the factorial of an integer.

(defun factor (y)
   (cond ((= 0 y) 1)
         (t(* y (factor (1- y))))
   )
)

(defun C:FACT (/ x)
   (initget 7)   ;x must not be null, negative or zero
   (setq x (getint "Enter an integer: "))
   (factor (float x))
)


20060510412 发表于 2018-9-11 09:02:50

Andyhon 发表于 2018-9-11 08:57
经典范例:
(defun fact (x) (cond ((= x 0) 1) (t (* x (fact (- x 1))))))



哦,懂了,cond函数中一定要有不引用自身函数的分支,这样当递归到了这个分支的时候,递归自然就结束了。
在上面那个例子中,当循环到csv中最后一个记录项的时候,进入第一个分支,此时就不再递归。

20060510412 发表于 2018-9-11 09:05:24

Andyhon 发表于 2018-9-11 08:57
经典范例:
(defun fact (x) (cond ((= x 0) 1) (t (* x (fact (- x 1))))))



您好,我在5楼还有个问题,尚不得其解,能否劳烦解释一下呢。就是那个logand函数的问题。

Andyhon 发表于 2018-9-11 09:41:55

先看官方说明文件
没能理解时善用搜寻
https://zhidao.baidu.com/question/425472238081606132.html?qbl=relate_question_0

亦或追踪输出变量值
(print (1+ 3))(princ)
只是例子...
页: [1]
查看完整版本: 请教wcmatch函数的参数问题