记事本里的多行怎样倒序排列?
可以编写代码把记事本里的多行倒序排列吗?比如,原来记事本里面是如下数据:
13,1925.319,1383.785
12,1868.955,1383.259
11,1817.331,1382.558
10,1927.777,1402.364
9,1873.511,1399.624
8,1818.94,1399.624
7,1928.196,1420.402
6,1871.492,1420.402
5,1820.444,1418.493
想要弄成如下:
5,1820.444,1418.493
6,1871.492,1420.402
7,1928.196,1420.402
8,1818.94,1399.624
9,1873.511,1399.624
10,1927.777,1402.364
11,1817.331,1382.558
12,1868.955,1383.259
13,1925.319,1383.785
可以编写一个LSP程序实现吗?
(defun c:ww(/ f lst x)
(setq f(open "d:/123.txt" "r"))
(while (setq x (read-line f))
(setq lst (append lst (list x)))
)
(close f)
(setq lst(reverse lst))
(setq f(open "d:/123-1.txt" "w"))
(foreach x lst (write-line x f))
(close f)
)
本帖最后由 guosheyang 于 2024-4-26 21:34 编辑
可以适当改下
(defun c:ww(/ f lst x)
(setq f0(getfiled "请选择文本文件" "" "txt" 8))
(setq f(open f0 "r"))
(while (setq x (read-line f))
(setq lst (cons x lst))
)
(close f)
(setq f(open f0 "w"))
(foreach x lst (write-line x f))
(close f)
)
咏郡 发表于 2024-4-26 20:30
(defun c:ww(/ f lst x)
(setq f(open "d:/123.txt" "r"))
(while (setq x (read-line f))
俺太穷了,不然就给您明经币了:lol (setq L (cons(read-line fn) L))自然就倒了,然后写回去。
如果是十亿数据,那还有一门技术叫外排序.
可以B站一下,有人教 自贡黄明儒 发表于 2024-4-26 16:03
(setq L (cons(read-line fn) L))自然就倒了,然后写回去。
cons函数是把一个元素与一个表接合起来吧,怎样使用LSP实现倒序呀? FCMhXrJ 发表于 2024-4-26 16:19
cons函数是把一个元素与一个表接合起来吧,怎样使用LSP实现倒序呀?
(setq L (cons(list(read-line fn)) L)) 自贡黄明儒 发表于 2024-4-26 16:22
(setq L (cons(list(read-line fn)) L))
大佬,还是不能实现倒序呀 先读取数据,倒序,再重新写入新数据 ssyfeng 发表于 2024-4-26 16:40
先读取数据,倒序,再重新写入新数据
具体使用什么代码编写倒序呀? ssyfeng 发表于 2024-4-26 16:40
先读取数据,倒序,再重新写入新数据
大佬,因为我不懂这样的倒序怎样写代码,所以才求助的呀 FCMhXrJ 发表于 2024-4-26 16:45
具体使用什么代码编写倒序呀?
reverse翻转列表