乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 20|回复: 12

[编程交流] 组合多个TBL搜索lin

[复制链接]

88

主题

346

帖子

281

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
423
发表于 2022-7-5 20:03:39 | 显示全部楼层 |阅读模式
有没有可能使它更紧凑?
 
  1. (DEFUN C:TEST ()
  2. (if (/= (tblsearch "STYLE" "ROMANS"))
  3. (COMMAND "-STYLE" "ROMANS" "ROMANS" "" "" "" "N" "N" "N")
  4. (if (= (tblsearch "STYLE" "SLDTEXTSTYLE0"))
  5. (COMMAND "-STYLE" "SLDTEXTSTYLE0" "ROMANS" "" "" "" "N" "N" "N")
  6. (if (= (tblsearch "STYLE" "SLDTEXTSTYLE1"))
  7. (COMMAND "-STYLE" "SLDTEXTSTYLE1" "ROMANS" "" "" "" "N" "N" "N")
  8. (if (= (tblsearch "STYLE" "SLDTEXTSTYLE2"))
  9. (COMMAND "-STYLE" "SLDTEXTSTYLE2" "ROMANS" "" "" "" "N" "N" "N")
  10. (if (= (tblsearch "STYLE" "SLDTEXTSTYLE3"))
  11. (COMMAND "-STYLE" "SLDTEXTSTYLE3" "ROMANS" "" "" "" "N" "N" "N")
  12. (if (= (tblsearch "STYLE" "SLDTEXTSTYLE4"))
  13. (COMMAND "-STYLE" "SLDTEXTSTYLE4" "ROMANS" "" "" "" "N" "N" "N")
  14. (if (= (tblsearch "STYLE" "SLDTEXTSTYLE5"))
  15. (COMMAND "-STYLE" "SLDTEXTSTYLE5" "ROMANS" "" "" "" "N" "N" "N")
  16. (if (= (tblsearch "STYLE" "SLDTEXTSTYLE6"))
  17. (COMMAND "-STYLE" "SLDTEXTSTYLE6" "ROMANS" "" "" "" "N" "N" "N")
  18. (if (= (tblsearch "STYLE" "SLDTEXTSTYLE7"))
  19. (COMMAND "-STYLE" "SLDTEXTSTYLE7" "ROMANS" "" "" "" "N" "N" "N")
  20. (if (= (tblsearch "STYLE" "SLDTEXTSTYLE8"))
  21. (COMMAND "-STYLE" "SLDTEXTSTYLE8" "ROMANS" "" "" "" "N" "N" "N")
  22. (PRINC))

 
 
请提供指导?
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 20:11:49 | 显示全部楼层
 
mapcar方法
  1. (defun c:test nil
  2. ([color="blue"]mapcar[/color] ''((x) (if ([color="red"]not[/color] (tblsearch "STYLE" x))
  3. (COMMAND "-STYLE" x "ROMANS" "" "" "" "N" "N" "N")))
  4. ((lambda (i / l)
  5. (vl-list* "ROMANS" (repeat 9 (setq l (cons (strcat "SLDTEXTSTYLE"(itoa(setq i (1- i)))) l)))))
  6. 9))
  7. (princ))
回复

使用道具 举报

0

主题

99

帖子

99

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 20:18:04 | 显示全部楼层
韩抢在我前面,可怜的打字员。。。
 
  1. (defun c:test ()
  2. (mapcar
  3. (function
  4.   (lambda (x)
  5.     (if
  6.       (not (tblsearch "style" x))
  7.        (COMMAND "-STYLE" x "ROMANS" "" "" "" "N" "N" "N")
  8.       )
  9.     )
  10.   )
  11.   '("ROMANS" "SLDTEXTSTYLE0" "SLDTEXTSTYLE1" "SLDTEXTSTYLE2" "SLDTEXTSTYLE2")
  12. )
  13. (princ)
  14. )
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 20:18:45 | 显示全部楼层
 
好久不见jdiala了!
没有什么能打败你,我也从你那里学到了
 
另一个
cond方法
编辑:此方法仅在当前样式匹配时应用更改
  1. (defun [b]c:[u]test2[/u][/b] nil
  2. [color="green"];switch current *style to ROMANS ,which styles are limited by user[/color]
  3. (eval
  4.      (cons 'cond
  5.     (mapcar ''((x)
  6.                (list
  7.                 [color="red"](equal (cdr(assoc 2 (tblsearch "STYLE" (getvar 'textstyle)))) x)[/color]
  8.                 (cons 'command (list "-STYLE" x "ROMANS" "" "" "" "N" "N" "N")))
  9.                ) ;_ end of lambda
  10.                                ((lambda (i / l)
  11.                (vl-list* "ROMANS"
  12.                          (repeat 9 (setq l (cons (strcat "STY" (itoa (setq i (1- i)))) l)))
  13.                          ) ;_ end of vl-list*
  14.                ) ;_ end of lambda
  15.               9
  16.               )
  17.             ) ;_ end of mapcar
  18.     ) ;_ end of cons
  19.      ) ;_ end of eval
  20. (princ)
  21. )

 
这解释了在评估之前上述测试2的相似性
  1. [color="green"];where [b][color="blue"]T[/color][/b]= [color="red"](tblsearch "STYLE" (getvar 'textstyle))[/color]
  2. ;assume [color="red"]"STY4"[/color] is current style, ie: only "STY4" is effected [/color]
  3. (COND (nil (COMMAND "-STYLE" "ROMANS" "ROMANS" "" "" "" "N" "N" "N"))
  4.      (nil (COMMAND "-STYLE" "STY0" "ROMANS" "" "" "" "N" "N" "N"))
  5.      (nil (COMMAND "-STYLE" "STY1" "ROMANS" "" "" "" "N" "N" "N"))
  6.      (nil (COMMAND "-STYLE" "STY2" "ROMANS" "" "" "" "N" "N" "N"))
  7.      (nil (COMMAND "-STYLE" "STY3" "ROMANS" "" "" "" "N" "N" "N"))
  8.      ([b][color="blue"]T[/color][/b]   (COMMAND "-STYLE" [color="red"]"STY4"[/color] "ROMANS" "" "" "" "N" "N" "N"))[color="green"]; <-- example curent style= T[/color]
  9.      (nil (COMMAND "-STYLE" "STY5" "ROMANS" "" "" "" "N" "N" "N"))
  10.      (nil (COMMAND "-STYLE" "STY6" "ROMANS" "" "" "" "N" "N" "N"))
  11.      (nil (COMMAND "-STYLE" "STY7" "ROMANS" "" "" "" "N" "N" "N"))
  12.      (nil (COMMAND "-STYLE" "STY8" "ROMANS" "" "" "" "N" "N" "N"))
  13.      ) ;_ end of COND

cond方法第三行
  1. (defun c:[u][b]test3[/b][/u] nil
  2. (COMMAND "-STYLE" (getvar 'textstyle) "ROMANS" "" "" "" "N" "N" "N")
  3. )

 
的确,我打字打得不好
jdiala打败了我
回复

使用道具 举报

88

主题

346

帖子

281

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
423
发表于 2022-7-5 20:25:33 | 显示全部楼层
我想我会倾向于;
 
  1. ''((x) (if ([color="red"]not [/color](tblsearch "STYLE" x))

 
 
-大卫
回复

使用道具 举报

88

主题

346

帖子

281

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
423
发表于 2022-7-5 20:30:46 | 显示全部楼层
 
这部分是循环usung repeat,你的例子是0~8
  1. (eval (cons '[color="red"]not[/color] (list '(tblsearch "STYLE" x) 'x)))

 
编辑:
谢谢David
ILoveMadoka,请注意David先生也使用了重复循环
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 20:36:24 | 显示全部楼层
 
你在帮我。无需道歉!
 
非常感谢!
 
 
大卫,
 
我也会看看你的。
 
谢谢你,先生!
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-5 20:41:02 | 显示全部楼层
在第4篇文章中更新。
*仅供参考
 
 
也许是我的困惑:
 
如果你不想像帖子#2中那样创建不需要的*样式0~8,
这意味着你指的是已经存在的样式?
更新此
  1. [b][color=BLACK]([/color][/b]defun c:rstyle [b][color=FUCHSIA]([/color][/b]/ i s[b][color=FUCHSIA])[/color][/b]
  2. [b][color=FUCHSIA]([/color][/b]if [b][color=NAVY]([/color][/b]not [b][color=MAROON]([/color][/b]tblsearch [color=#2f4f4f]"STYLE"[/color] [color=#2f4f4f]"ROMANS"[/color][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  3.    [b][color=NAVY]([/color][/b]progn
  4.     [b][color=MAROON]([/color][/b]command [color=#2f4f4f]"_.STYLE"[/color] [color=#2f4f4f]"ROMANS"[/color] [color=#2f4f4f]"ROMANS"[/color][b][color=MAROON])[/color][/b]
  5.     [b][color=MAROON]([/color][/b]while [b][color=GREEN]([/color][/b]> [b][color=BLUE]([/color][/b]getvar [color=#2f4f4f]"CMDACTIVE"[/color][b][color=BLUE])[/color][/b] 0[b][color=GREEN])[/color][/b]
  6.            [b][color=GREEN]([/color][/b]command [color=#2f4f4f]""[/color][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  7. [b][color=FUCHSIA]([/color][/b]setq i 0[b][color=FUCHSIA])[/color][/b]
  8. [b][color=FUCHSIA]([/color][/b]repeat 9
  9.   [b][color=NAVY]([/color][/b]setq s [b][color=MAROON]([/color][/b]strcat [color=#2f4f4f]"SLDTEXTSTYLE"[/color] [b][color=GREEN]([/color][/b]itoa i[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  10.   [b][color=NAVY]([/color][/b]if [b][color=MAROON]([/color][/b]tblsearch [color=#2f4f4f]"STYLE"[/color] s[b][color=MAROON])[/color][/b]
  11.       [b][color=MAROON]([/color][/b]progn
  12.         [b][color=GREEN]([/color][/b]command [color=#2f4f4f]"_.STYLE"[/color] s [color=#2f4f4f]"ROMANS"[/color][b][color=GREEN])[/color][/b]
  13.         [b][color=GREEN]([/color][/b]while [b][color=BLUE]([/color][/b]> [b][color=RED]([/color][/b]getvar [color=#2f4f4f]"CMDACTIVE"[/color][b][color=RED])[/color][/b] 0[b][color=BLUE])[/color][/b]
  14.                [b][color=BLUE]([/color][/b]command [color=#2f4f4f]""[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  15.   [b][color=NAVY]([/color][/b]setq i [b][color=MAROON]([/color][/b]1+ i[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  16. [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 20:47:05 | 显示全部楼层
大卫,
 
这非常有效!非常感谢。
 
 
 
回复

使用道具 举报

88

主题

346

帖子

281

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
423
发表于 2022-7-5 20:51:50 | 显示全部楼层
不客气。您可以添加一些错误捕捉,以确保可以制作罗马字母,但大多数系统在搜索路径中都有罗马字母
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-12 00:59 , Processed in 0.501893 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表