乐筑天下

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

[编程交流] lisp可以用来强制

[复制链接]
Cat

6

主题

45

帖子

39

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 09:46:31 | 显示全部楼层 |阅读模式
大家好,
我不知道这是否可以做到,因为我对编写lisp例程非常了解,但我整天都在编写和运行脚本,试图在一个项目结束时“清理”一个巨大的烂摊子,该项目在不同国家的几个部门之间被分割,几乎没有或根本没有协调任何相关部门之间的一致性@#$@$#@
 
无论如何,我已经介绍了很多使用查找和替换的脚本,但我已经到了一个点,我需要替换的信息是通用的,以使用查找和替换功能。标记对于所有图形都是通用的,我希望能够使用一个脚本执行lisp,该脚本可以找到该标记并将标记的值更改为我需要的值。
 
我希望我的胡言乱语没有给任何能够帮助我解决这个问题的人带来混乱。如果是这样,那就归咎于项目经理。
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 09:50:40 | 显示全部楼层
看看我是否理解:
在一次调用中更改具有指定标记名的所有插入中的1个属性值
 
如果是这样:
 
  1. [b][color=BLACK]([/color][/b]defun c:chg1att [b][color=FUCHSIA]([/color][/b]/ tagname new_val i ss en ch an ad[b][color=FUCHSIA])[/color][/b]
  2. [b][color=FUCHSIA]([/color][/b]setq tagname [b][color=NAVY]([/color][/b]strcase [b][color=MAROON]([/color][/b]getstring [color=#2f4f4f]"\nATTRIB TagName:  "[/color][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  3. [b][color=FUCHSIA]([/color][/b]setq new_val [b][color=NAVY]([/color][/b]getstring t [color=#2f4f4f]"\nNew ATTRIB Value:  "[/color][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  4. [b][color=FUCHSIA]([/color][/b]and [b][color=NAVY]([/color][/b]setq i -1 ss [b][color=MAROON]([/color][/b]ssget [color=#2f4f4f]"X"[/color] '[b][color=GREEN]([/color][/b][b][color=BLUE]([/color][/b]0 . [color=#2f4f4f]"INSERT"[/color][b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]66 . 1[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  5.       [b][color=NAVY]([/color][/b]while [b][color=MAROON]([/color][/b]setq en [b][color=GREEN]([/color][/b]ssname ss [b][color=BLUE]([/color][/b]setq i [b][color=RED]([/color][/b]1+ i[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  6.              [b][color=MAROON]([/color][/b]setq ch nil
  7.                    an [b][color=GREEN]([/color][/b]entnext en[b][color=GREEN])[/color][/b]
  8.                    ad [b][color=GREEN]([/color][/b]entget an[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  9.              [b][color=MAROON]([/color][/b]while [b][color=GREEN]([/color][/b]= [color=#2f4f4f]"ATTRIB"[/color] [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]assoc 0 ad[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  10.                     [b][color=GREEN]([/color][/b]and [b][color=BLUE]([/color][/b]= [b][color=RED]([/color][/b]cdr [b][color=PURPLE]([/color][/b]assoc 2 ad[b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b] tagname[b][color=BLUE])[/color][/b]
  11.                          [b][color=BLUE]([/color][/b]entmod [b][color=RED]([/color][/b]subst [b][color=PURPLE]([/color][/b]cons 1 new_val[b][color=PURPLE])[/color][/b]
  12.                                         [b][color=PURPLE]([/color][/b]assoc 1 ad[b][color=PURPLE])[/color][/b] ad[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  13.                          [b][color=BLUE]([/color][/b]setq ch T[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  14.                     [b][color=GREEN]([/color][/b]setq an [b][color=BLUE]([/color][/b]entnext an[b][color=BLUE])[/color][/b]
  15.                           ad [b][color=BLUE]([/color][/b]entget an[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  16.              [b][color=MAROON]([/color][/b]if ch [b][color=GREEN]([/color][/b]entupd en[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  17. [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]

 
-大卫
回复

使用道具 举报

Cat

6

主题

45

帖子

39

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 09:54:38 | 显示全部楼层
谢谢你,大卫。你能澄清一下在lisp中我将把标记名和新值放在哪里吗?我必须先输入旧值,然后输入新值吗?
例如:
标记名类似于:Code_4
我需要替换的值是:48
新值将为:实际描述。。。。比如说。。。。。见现场跑步
对不起,我是Lisp程序的文盲。
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 09:58:35 | 显示全部楼层
这会更改属性值,而不考虑旧值。这是一个问题吗?
 
  1. [b][color=BLACK]([/color][/b]defun c:chg1att [b][color=FUCHSIA]([/color][/b]/ tagname new_val i ss en ch an ad[b][color=FUCHSIA])[/color][/b]
  2. [b][color=FUCHSIA]([/color][/b]setq tagname [color=#2f4f4f]"CODE_4"[/color][b][color=FUCHSIA])[/color][/b]
  3. [b][color=FUCHSIA]([/color][/b]setq new_val [color=#2f4f4f]"See Spot Run"[/color][b][color=FUCHSIA])[/color][/b]
  4. [b][color=FUCHSIA]([/color][/b]and [b][color=NAVY]([/color][/b]setq i -1 ss [b][color=MAROON]([/color][/b]ssget [color=#2f4f4f]"X"[/color] '[b][color=GREEN]([/color][/b][b][color=BLUE]([/color][/b]0 . [color=#2f4f4f]"INSERT"[/color][b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]66 . 1[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  5.       [b][color=NAVY]([/color][/b]while [b][color=MAROON]([/color][/b]setq en [b][color=GREEN]([/color][/b]ssname ss [b][color=BLUE]([/color][/b]setq i [b][color=RED]([/color][/b]1+ i[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  6.              [b][color=MAROON]([/color][/b]setq ch nil
  7.                    an [b][color=GREEN]([/color][/b]entnext en[b][color=GREEN])[/color][/b]
  8.                    ad [b][color=GREEN]([/color][/b]entget an[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  9.              [b][color=MAROON]([/color][/b]while [b][color=GREEN]([/color][/b]= [color=#2f4f4f]"ATTRIB"[/color] [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]assoc 0 ad[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  10.                     [b][color=GREEN]([/color][/b]and [b][color=BLUE]([/color][/b]= [b][color=RED]([/color][/b]strcase [b][color=PURPLE]([/color][/b]cdr [b][color=TEAL]([/color][/b]assoc 2 ad[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
  11.                             [b][color=RED]([/color][/b]strcase tagname[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  12.                          [b][color=BLUE]([/color][/b]entmod [b][color=RED]([/color][/b]subst [b][color=PURPLE]([/color][/b]cons 1 new_val[b][color=PURPLE])[/color][/b]
  13.                                         [b][color=PURPLE]([/color][/b]assoc 1 ad[b][color=PURPLE])[/color][/b] ad[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  14.                          [b][color=BLUE]([/color][/b]setq ch T[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  15.                     [b][color=GREEN]([/color][/b]setq an [b][color=BLUE]([/color][/b]entnext an[b][color=BLUE])[/color][/b]
  16.                           ad [b][color=BLUE]([/color][/b]entget an[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  17.              [b][color=MAROON]([/color][/b]if ch [b][color=GREEN]([/color][/b]entupd en[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  18. [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]

 
 
-大卫
回复

使用道具 举报

Cat

6

主题

45

帖子

39

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 10:01:17 | 显示全部楼层
不,大卫,这应该很好用。我周末休假,但星期一早上第一件事就是试试。我知道,对于未来的应用程序,我可以多次复制代码来替换多个标记值吗?
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 10:04:20 | 显示全部楼层
是的,你可以复制多次。
 
如果需要处理1000个插入,则可以提高例程的效率,但使用今天的硬件,只需几秒钟即可完成-大卫
回复

使用道具 举报

Cat

6

主题

45

帖子

39

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 10:07:02 | 显示全部楼层
再次感谢你,大卫。我真的很感激。我会告诉你事情的进展。
回复

使用道具 举报

Cat

6

主题

45

帖子

39

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 10:11:26 | 显示全部楼层
大卫,
我只是想让你知道Lisp程序很有效。我真的很感谢你的帮助。
将lisp修改为当前属性值到新属性值的查找和替换有多困难?
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 10:14:07 | 显示全部楼层
非常简单:
 
  1. [color=#8b4513];;;Change 1 Known ATTRIBute Value With a New Value[/color]
  2. [b][color=BLACK]([/color][/b]defun c:chg1kat [b][color=FUCHSIA]([/color][/b]/ tagname old_val new_val i ss en ch an ad[b][color=FUCHSIA])[/color][/b]
  3. [b][color=FUCHSIA]([/color][/b]setq tagname [color=#2f4f4f]"CODE_4"[/color][b][color=FUCHSIA])[/color][/b]
  4. [b][color=FUCHSIA]([/color][/b]setq old_val [color=#2f4f4f]"See Jane Run"[/color][b][color=FUCHSIA])[/color][/b]
  5. [b][color=FUCHSIA]([/color][/b]setq new_val [color=#2f4f4f]"See Spot Run"[/color][b][color=FUCHSIA])[/color][/b]
  6. [b][color=FUCHSIA]([/color][/b]and [b][color=NAVY]([/color][/b]setq i -1 ss [b][color=MAROON]([/color][/b]ssget [color=#2f4f4f]"X"[/color] '[b][color=GREEN]([/color][/b][b][color=BLUE]([/color][/b]0 . [color=#2f4f4f]"INSERT"[/color][b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]66 . 1[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b]
  7.       [b][color=NAVY]([/color][/b]while [b][color=MAROON]([/color][/b]setq en [b][color=GREEN]([/color][/b]ssname ss [b][color=BLUE]([/color][/b]setq i [b][color=RED]([/color][/b]1+ i[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  8.              [b][color=MAROON]([/color][/b]setq ch nil
  9.                    an [b][color=GREEN]([/color][/b]entnext en[b][color=GREEN])[/color][/b]
  10.                    ad [b][color=GREEN]([/color][/b]entget an[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  11.              [b][color=MAROON]([/color][/b]while [b][color=GREEN]([/color][/b]= [color=#2f4f4f]"ATTRIB"[/color] [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]assoc 0 ad[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  12.                     [b][color=GREEN]([/color][/b]and [b][color=BLUE]([/color][/b]= [b][color=RED]([/color][/b]strcase [b][color=PURPLE]([/color][/b]cdr [b][color=TEAL]([/color][/b]assoc 2 ad[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b]
  13.                             [b][color=RED]([/color][/b]strcase tagname[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  14.                          [b][color=BLUE]([/color][/b]= [b][color=RED]([/color][/b]strcase old_val[b][color=RED])[/color][/b]
  15.                             [b][color=RED]([/color][/b]strcase [b][color=PURPLE]([/color][/b]cdr [b][color=TEAL]([/color][/b]assoc 1 ad[b][color=TEAL])[/color][/b][b][color=PURPLE])[/color][/b][b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  16.                          [b][color=BLUE]([/color][/b]entmod [b][color=RED]([/color][/b]subst [b][color=PURPLE]([/color][/b]cons 1 new_val[b][color=PURPLE])[/color][/b]
  17.                                         [b][color=PURPLE]([/color][/b]assoc 1 ad[b][color=PURPLE])[/color][/b] ad[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b]
  18.                          [b][color=BLUE]([/color][/b]setq ch T[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b]
  19.                     [b][color=GREEN]([/color][/b]setq an [b][color=BLUE]([/color][/b]entnext an[b][color=BLUE])[/color][/b]
  20.                           ad [b][color=BLUE]([/color][/b]entget an[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b]
  21.              [b][color=MAROON]([/color][/b]if ch [b][color=GREEN]([/color][/b]entupd en[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  22. [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b]

 
 
这些值不区分大小写
 
就比较而言,简和简是平等的。
 
-大卫
回复

使用道具 举报

Cat

6

主题

45

帖子

39

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 10:15:53 | 显示全部楼层
大卫,你太棒了。
还有一个问题。如果我想在lisp中执行多个值,是否需要每个值复制整个代码?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-6 15:24 , Processed in 0.712595 second(s), 72 queries .

© 2020-2025 乐筑天下

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