Squirltech 发表于 2022-7-5 16:32:22

创建自定义线条表

在调查业务中,在德克萨斯州这里,我们做了很多记录信息()和邻接记录信息[]。我试图创建一个表,以所附图像中显示的一般格式,但我希望行号的顺序是L1,然后(L1),然后(如果适用),依此类推。目前,我只能选择根据升序或降序对数据进行排序。我已经查看了所有的表格选项,但我没有看到任何允许我这样做的内容。感谢您的帮助。
谢谢
T
 

BIGAL 发表于 2022-7-5 16:37:47

一种粗略的方法可能是将表格读入一个列表,希望Lee能够读入并对列表进行排序,识别“(alpha”v的“alpha”。然后以新的顺序重写表格。它可能需要一个非显示字符,如上图所示,您有3个字符可供排序。

Squirltech 发表于 2022-7-5 16:39:31

这也是我所想的,但我不知道如何实现它。
 
可能是左侧的一列,仅用于排序。可能是动态块?

BIGAL 发表于 2022-7-5 16:47:34

Weldriller用(a7)2 a3(a6)在a列上尝试排序。我将保存悬念。不起作用。这是我第一次尝试的。
 
李,你在哪里?你是我所知道的唯一一个可能解决这个问题的大师,是的,可能需要一个隐藏的字符作为(a1)v的a1

SLW210 发表于 2022-7-5 16:49:06

我把你的帖子移到了AutoLISP、Visual LISP和DCL论坛,也许你会在这里找到一些解决方案。

Lee Mac 发表于 2022-7-5 16:53:20

好的,艾尔,你引起了我的注意
 
我不确定预期的排序顺序,但以下函数演示了一种排序方法:
(defun surveysort-i ( lst )
   (vl-sort-i (mapcar 'strcase lst)
       (function
         (lambda ( a b / x y )
               (setq x (ascii a)
                     y (ascii b)
               )
               (cond
                   (   (or (= 91 x y) (= 40 x y)
                           (and (not (or (= 40 x) (= 91 x)))
                              (not (or (= 40 y) (= 91 y)))
                           )
                     )
                     (< (vl-string-trim "()[]" a) (vl-string-trim "()[]" b))
                   )
                   (   (not (or (= 40 x) (= 91 x))))
                   (   (not (or (= 40 y) (= 91 y))) nil)
                   (   (= 40 x))
               )
         )
       )
   )
)示例:
_$ (setq lst '("L3" "" "" "(L1)" "B2" "" "(A1)" "L1" "(B1)" "A1"))

_$ (mapcar '(lambda ( n ) (nth n lst)) (surveysort-i lst))
("A1" "B2" "L1" "L3" "(A1)" "(B1)" "(L1)" "" "" "")
 
当前代码在排序“L1”和“L10”方面仍然存在问题,但它演示了这个概念。

BIGAL 发表于 2022-7-5 16:56:02

谢谢李,这更接近了,至少现在你有了一个排序列表,我会重写整个表,正如我在第一篇文章中建议的那样,比较两个列表,按李排序的列表和表条目
 

("A1" "B2" "L1" "L3" "(A1)" "(B1)" "(L1)" "" "" "")
("A1" "N23" "12" "32" "E" "401.123" "B2" "N31" "23'" "45" "E" "104.256"..........

Lee Mac 发表于 2022-7-5 16:59:41

无需进行列表比较,因为我提出的排序函数使用vl-sort-I,因此重新定位的项目的索引是已知的-然而,我想在进一步讨论示例之前确认排序顺序。

BIGAL 发表于 2022-7-5 17:02:52

谢谢李,你现在一定很晚才看到这篇文章。

Roy_043 发表于 2022-7-5 17:06:31

但也许警察想要这个订单
("A1" "(A1)" "" "" "(B1)" "" "B2" "L1" "(L1)" "L3")
页: [1] 2
查看完整版本: 创建自定义线条表