Aftertouch 发表于 2022-7-5 16:34:01

写这个的更聪明的方法(龙)

大家好,
我自己建立以下代码。。。
 
Fase01 Fase02等。。。都是我字典上的Xrecords。
我需要更改所有30个Xrecords的值。。。
这个代码可以写出来吗?这样它就可以通过代码行中的所有记录“循环”了吗??
 

                                                        (setq xrecordupdate (GetXrec "Fase00"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase00" (list (cons 1 xrecordupdate)))
                                                        (setq xrecordupdate (GetXrec "Fase01"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase01" (list (cons 1 xrecordupdate)))
                                                        (setq xrecordupdate (GetXrec "Fase02"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase02" (list (cons 1 xrecordupdate)))
                                                        (setq xrecordupdate (GetXrec "Fase03"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase03" (list (cons 1 xrecordupdate)))
                                                        (setq xrecordupdate (GetXrec "Fase04"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase04" (list (cons 1 xrecordupdate)))
                                                        (setq xrecordupdate (GetXrec "Fase05"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase05" (list (cons 1 xrecordupdate)))
                                                        (setq xrecordupdate (GetXrec "Fase06"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase06" (list (cons 1 xrecordupdate)))
                                                        (setq xrecordupdate (GetXrec "Fase07"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase07" (list (cons 1 xrecordupdate)))
                                                        (setq xrecordupdate (GetXrec "Fase08"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase08" (list (cons 1 xrecordupdate)))
                                                        (setq xrecordupdate (GetXrec "Fase09"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase09" (list (cons 1 xrecordupdate)))
                                                        (setq xrecordupdate (GetXrec "Fase10"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase10" (list (cons 1 xrecordupdate)))
                                                        (setq xrecordupdate (GetXrec "Fase11"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase11" (list (cons 1 xrecordupdate)))
                                                        (setq xrecordupdate (GetXrec "Fase12"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase12" (list (cons 1 xrecordupdate)))
                                                        (setq xrecordupdate (GetXrec "Fase13"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase13" (list (cons 1 xrecordupdate)))
                                                        (setq xrecordupdate (GetXrec "Fase14"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase14" (list (cons 1 xrecordupdate)))
                                                        (setq xrecordupdate (GetXrec "Fase15"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase15" (list (cons 1 xrecordupdate)))
                                                        (setq xrecordupdate (GetXrec "Fase16"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase16" (list (cons 1 xrecordupdate)))
                                                        (setq xrecordupdate (GetXrec "Fase17"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase17" (list (cons 1 xrecordupdate)))
                                                        (setq xrecordupdate (GetXrec "Fase18"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase18" (list (cons 1 xrecordupdate)))
                                                        (setq xrecordupdate (GetXrec "Fase19"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase19" (list (cons 1 xrecordupdate)))
                                                        (setq xrecordupdate (GetXrec "Fase20"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase20" (list (cons 1 xrecordupdate)))
                                                        (setq xrecordupdate (GetXrec "Fase21"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase21" (list (cons 1 xrecordupdate)))
                                                        (setq xrecordupdate (GetXrec "Fase22"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase22" (list (cons 1 xrecordupdate)))
                                                        (setq xrecordupdate (GetXrec "Fase23"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase23" (list (cons 1 xrecordupdate)))
                                                        (setq xrecordupdate (GetXrec "Fase24"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase24" (list (cons 1 xrecordupdate)))
                                                        (setq xrecordupdate (GetXrec "Fase25"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase25" (list (cons 1 xrecordupdate)))
                                                        (setq xrecordupdate (GetXrec "Fase26"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase26" (list (cons 1 xrecordupdate)))
                                                        (setq xrecordupdate (GetXrec "Fase27"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase27" (list (cons 1 xrecordupdate)))
                                                        (setq xrecordupdate (GetXrec "Fase28"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase28" (list (cons 1 xrecordupdate)))
                                                        (setq xrecordupdate (GetXrec "Fase29"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase29" (list (cons 1 xrecordupdate)))
                                                        (setq xrecordupdate (GetXrec "Fase30"))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "0000000" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 "Fase30" (list (cons 1 xrecordupdate)))

Aftertouch 发表于 2022-7-5 17:13:24

很抱歉
我自己解决了我想。。。

(foreach fasenr '("Fase01" "Fase02" "Fase03" "Fase04" "Fase05" "Fase06" "Fase07" "Fase08" "Fase09" "Fase10" "Fase11" "Fase12" "Fase13" "Fase14" "Fase15" "Fase16" "Fase17" "Fase18" "Fase19" "Fase20" "Fase21" "Fase22" "Fase23" "Fase24" "Fase25" "Fase26" "Fase27" "Fase28" "Fase29" "Fase30")
                                                        (setq xrecordupdate (GetXrec fasenr))(setq xrecordupdate (strcat (substr xrecordupdate 1 11) "1111111" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 fasenr (list (cons 1 xrecordupdate)))
                                                        )

David Bethel 发表于 2022-7-5 17:23:35

您也可以尝试增量变量:

(setq i 1)
(repeat 30
(setq var (strcat "fasenr" (if (< i 10) "0" "") (itoa i)))       
(and
   (setq xrecordupdate (GetXrec var))
   (setq xrecordupdate (strcat (substr xrecordupdate 1 11) "1111111" (substr xrecordupdate 19)))(AddOrReplaceXrec dict1 var (list (cons 1 xrecordupdate)))
)
(setq i (1+ i)))
 
-大卫

Grrr 发表于 2022-7-5 17:36:51

另一个:

(mapcar '(lambda (x) (AddOrReplaceXrec dict1 fasenr (list (cons 1 (strcat (substr x 1 11) "1111111" (substr x 19))))))
(mapcar 'GetXrec (mapcar '(lambda (x) (strcat "Fase" x)) (cdr (Min2digitInteger 30))) )
)

; (Min2digitInteger 30)
(defun Min2digitInteger ( n / L )
(cond
   ( (and (eq 'INT (type n)) (not (minusp n)))
   (repeat (setq n (1+ n))
       (setq n (1- n))
       (setq L (cons (cond ((< n 10) (strcat "0" (itoa n)) ) (T (itoa n)) ) L))
   ); repeat
   L
   )
); cond
); defun
页: [1]
查看完整版本: 写这个的更聪明的方法(龙)