乐筑天下

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

[编程交流] 读取csv文件行

[复制链接]

7

主题

23

帖子

16

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 15:01:12 | 显示全部楼层 |阅读模式
大家好,
我理解为我们可以使用的表格读取csv行
 
(setq csvline(读取行f))
 
这从第一行开始
 
我有点迷路/找不到如何阅读特定的一行,比如说第5行
也可以堆叠输出。
 
(定义c:csvin()
(setq f(打开“D:/03扫描/test.csv”“r”);打开csv文件
(setq csvdata(读取行f));读取第一行
(命令“text”(getpoint)”“csvdata);选择要插入的位置
)
 
当做
特雷凡123
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 15:07:57 | 显示全部楼层
或者类似于:
  1. (repeat 5 (setq csvline (read-line f)))

或者,使用我的读取CSV功能:
  1. (setq csvline (nth 4 (LM:readcsv "YourFilename.csv")))

注意,后者将返回单元格值列表,而前者将返回字符串。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 15:13:57 | 显示全部楼层
李和往常一样回答得很好,特别是LM:Readcsv。
 
  1. (defun c:csvin ( / f x csvdata)
  2. (setq f (open "D:/03-Scans/test.csv" "r")) ;Open csv file
  3. (setq x (getint "Enter line number to read"))
  4. (repeat x (setq csvline (read-line f)))
  5. (command "text" (getpoint) "" "" csvdata) ;Pick place to insert
  6. (close F) ; good idea to close file
  7. )

 
  1. (defun c:csvin ( / f x csvdata)
  2. (while (setq x (getint "Enter line number to read"))
  3. (setq f (open "D:/03-Scans/test.csv" "r")) ;Open csv file
  4. (repeat x (setq csvline (read-line f)))
  5. (command "text" (getpoint) "" "" csvdata) ;Pick place to insert
  6. (close F) ; good idea to close file
  7. )
  8. )

更好地使用readcsv
  1. (defun c:csvinm ( / f x csvlines csvdata)
  2. (setq fname (getfiled "Select a csv File" "D:/03-Scans/" "csv" 4))
  3. (while (setq x (getint "Enter line number to read"))
  4. (setq f (open fname "r"))
  5. (repeat  x
  6. (setq csvlines  (LM:csv->lst (read-line F) "," 1))
  7. )
  8. (close F)
  9. (setq y 0)
  10. (setq textans "")
  11. (repeat (length csvlines)
  12. (setq textans (strcat (nth y csvlines) " " textans))
  13. (setq y (+ y 1))
  14. )
  15. (command "text" (getpoint) "" textans)
  16. )
  17. (princ)
  18. )
  19. (c:csvinm)
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 15:17:11 | 显示全部楼层
请阅读代码发布指南,并将您的代码包含在代码标签中。[NOPARSE]
  1. Your Code Here[/NOPARSE]
=
  1. Your Code Here
回复

使用道具 举报

7

主题

23

帖子

16

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 15:23:07 | 显示全部楼层
谢谢你的帮助,这位beginer又学到了一些东西
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 15:26:22 | 显示全部楼层
 
BIGAL,请注意,我的LM:readcsv函数接受文件名(字符串)参数,而不是文件描述符。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 15:33:00 | 显示全部楼层
哎呀,谢谢李没有测试,所以重写并测试了更新的代码。
回复

使用道具 举报

7

主题

23

帖子

16

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 15:36:58 | 显示全部楼层
抱歉,还是搞砸了/试图理解
  1. (defun c:csvin ( iSR / f x csvdata)
  2. (while (setq iSR (getint "Rating :- "))
  3. (if (= iSR 150) ; where Rating is 150#
  4. (progn
  5. (setq f (open "D:/03-Scans/150.csv" "r")) ;Open 150 csv file

 
那么,如果我需要它来打开一个特定的文件,我可以这样做吗?
然后尝试获取下一个输入,将行设置为读取
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 15:39:52 | 显示全部楼层
我重写了上面发布的代码,包括一个选择CSV。你现在是说你想看每一行并决定是否将其添加到表中?
回复

使用道具 举报

7

主题

23

帖子

16

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 15:46:27 | 显示全部楼层
请容忍我,因为我不完全理解,通常只是把口吃拼凑在一起。
所以我有一个新的攻击线。
它使用DCL文件(由Terry Miller负责),然后慢慢取出我所看到的可能不需要的内容,并补充道。
因此lisp将询问评分和项目
“评级”将作为文件
“项”是文件中需要放置在图形中的行
 
也许我应该使用excel工作表,但我看到的lisps无法理解到底发生了什么,主要是因为它们是用v.basic编写的。
所以我的理解是csv文件或记事本
很抱歉搞砸了
 
希望这能解释得一清二楚
I按下。DCL
I按下。LSP
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-15 00:47 , Processed in 2.398552 second(s), 72 queries .

© 2020-2025 乐筑天下

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