分隔符:我是emacs的新手。 我正在尝试创建一个遍历org-table的函数,并提取特定的值并对它们进行一些算术运算。该算法与我的问题无关,但我无法将字段值转换为整数或浮点数列表。
例如,函数
(defun print-field-value()
(interactive)
(setq list '())
(unless (org-table-p) (error "Not in an org-table"))
(goto-char (org-table-begin))
(org-table-next-field)
(while (org-table-p)
(add-to-list 'list (save-excursion (org-table-get-field 1)))
(forward-line))
(print list)
)
在表格上执行时
| 7 | 8 | 9 | 10 | 11 | -12 |
| 78 | 46 | 00 | 36 | 64 | 98 |
产生输出
(#(" 78 " 0 4 (fontified t face org-table)) #(" 7 " 0 4 (fontified t face org-table)))
我对社区有两个问题: 1.我列表中的这些元素是什么? (什么类型的对象或那些) 2.有没有办法可以将整数放入列表中,这样我就可以轻松地对值进行一些算术运算了?
我理想地寻找一种简单的方法来做到这一点,而不需要创建另一个函数,该函数包含上述函数返回的内容并提取整数。我的直觉(可能存在缺陷)是应该有一种更简单的方法来做到这一点。我是对的吗?
答案 0 :(得分:0)
" 78 "
是一个字符串,在C中只需要注明list
。接下来,您无需打印即可返回结果:在代码中放置print list
代替describe-function
就足够了。
如果要在emacs中发现任何模式,请使用其所有功能具有相同前缀的事实。在这里,运行org-table-
org-table-analyze
并按两次TAB以获取有关组织表的所有函数的列表。然后,您将看到有希望的函数(defun get-field-values ()
(unless (org-table-p) (error "Not in an org-table"))
(org-table-analyze)
(mapcar
(lambda (i)
(mapcar (lambda (j) (string-to-number (org-table-get i j)))
(number-sequence 1 org-table-current-ncol)))
(number-sequence 1 (1- (length org-table-dlines)))))
,并阅读其文档。这样你就可能想出以下内容:
M-:
它将为您提供字段矩阵,作为数字列表的列表。请注意,此功能不是交互式的,您可以使用Data Source=[database instance];Initial Catalog=[database name];Integrated Security=true