乐筑天下

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

[编程交流] 从外部文件读取

[复制链接]

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 10:57:35 | 显示全部楼层
我认为你现在真的需要选择一种方法,我们有3种,从excel读取,访问数据库和一个csv txt文件,我个人会做更多的搜索重新excel链接有很多关于如何读取单元格a1和b1,然后a2和b2等的帖子更简单,每个人通常都可以使用电子表格。
回复

使用道具 举报

11

主题

968

帖子

919

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
99
发表于 2022-7-6 11:04:19 | 显示全部楼层
除Excel方法外,其他所有方法都使用数据列表。excel方法也可以使用列表,但可以依次直接处理每个单元格。ADOLisp基本上将SQL查询提取到嵌套列表中,列表中的第一项是列名列表,下面的项是字段值列表,其顺序与列名相同。 
要从CSV文件中获得类似的表示,需要将文件一次读取一行(使用读取行)到字符串变量中。然后需要标记该字符串。有多种方法,您可以在此处搜索CSV令牌化。然而,我的做法略有不同。我将所有行读入一个字符串变量,然后将其发送到我的RegExp中的RX:CSV令牌函数。LSP文件。这只是对整个文件进行标记,以生成与ADOLisp完全相同的列表类型。以下是使用我的代码读取整个CSV文件的示例:
或者(可能更有效一点):
正如比加尔所说,我也建议你首先选择这三种方法中的一种。你可以稍后提供一个选项来阅读这3个选项中的任何一个,一旦你让其中一个工作。通常从CSV开始是个好主意,因为它更像是一种通用存储。
 
“普通”Excel方法(即通过ActiveX)要求用户安装了Excel。ADOLisp只允许使用Access ODBC/ADO驱动程序的MDB文件,而不需要整个Access程序。顺便说一句,ADOLisp也允许读取(可能写入)XLS文件,因为它可以使用Excel ODBC驱动程序,不需要Excel程序。
 
在任何情况下,我建议您获取类似此嵌套列表的内容。它的优点是每行的第一个字段可以用作“键”。因此,如果用户键入值,您可以使用assoc搜索相关行。例如,假设数据(通过我的上述例程从CSV读取)存储在名为data的变量中,您可以执行以下操作:
只要第一列是唯一的,就可以得到“正确”行。如果不是唯一的,你只能得到第一个这样找到的。否则,搜索一个名为massoc的例程,该例程将提取以键作为其第一个字段的所有行。
 
然后,为了扩展到MDB/XLS/AnythingElse,您需要做的就是编写一些代码,将数据提取到类似的列表中。这意味着你已经让你的日常生活变得可有可无——从长远来看,这会有很大帮助。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 00:30 , Processed in 0.826311 second(s), 54 queries .

© 2020-2025 乐筑天下

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