Luís Augusto 发表于 2022-7-5 23:35:26

进行查询

大家好。
我想知道autolisp中是否有类似于SQL查询选择的功能。
 
我需要查询一个大约有500种产品的文件。我将通过参数搜索零件号,并希望返回您的描述。
 
示例表:
第一列属于零件号
第二列属于说明
 
使用SQL可能会:
“从tablesample中选择,其中((()=”“PN1234”“);”
 
另一个问题。
要获得更好的性能,最好的文件类型是什么?
我一直在阅读有关函数“读取文件”的内容,这是最好的方法吗?
 
非常感谢。

MSasu 发表于 2022-7-5 23:39:29

你要找的文件是什么?是ASCII文件吗?或者是DWG,在指定“产品”是什么(实体类型)时很有用。

Luís Augusto 发表于 2022-7-5 23:42:30

首先,感谢您的回复。
对不起,我的问题不清楚。
当我提到要使用的文件时,我在寻找关于最佳方法的答案。
到目前为止,我可以看到通过函数“read file”读取文件(.Txt或.Csv)是可能的,但对于我来说,要做我需要做的事情,我必须编写自己的函数。
还有更直接的方法吗?

Lee Mac 发表于 2022-7-5 23:45:21

下面是一个用于AutoLISP的SQLite实用程序,它可能很有用:
 
http://www.theswamp.org/index.php?topic=28286.0
 
[需要沼泽会员才能查看]

BIGAL 发表于 2022-7-5 23:49:42

搜索具有多个列的简单文本文件并不难,有多种方法。重要的部分是如何将信息分隔开来,是用空格还是逗号,还是我纯粹用垂直列来分隔。
 
这些例程是免费提供的,您需要做的是发布一个小样本的数据文件。

Luís Augusto 发表于 2022-7-5 23:53:02

 
非常感谢李的回复。
很高兴知道有这种可能性,但我认为这对我来说是一个很长的一步。我把这个页面标记为最喜欢的,当我更成熟一点,尝试连接的时候。
 
与此同时,我读了更多关于“读取文件”功能的内容,我认为我需要足够的知识。
我将尝试使用read函数查找一些能够满足我需要的代码。我将使用文件。csv作为数据库。
 
在我的研究中,我偶然发现了您的代码ReadCSV-V1-3。
我发现很棒,但仍然不知道如何从列表中提取信息来模拟查询。该程序区分十进制分隔符,可谓锦上添花,完美无瑕。在我的国家,我们使用“;”分号。
 
欢迎在这方面提供任何帮助。
 
非常感谢你。

BIGAL 发表于 2022-7-5 23:56:08

仍然发布示例文件!
 
一旦你用李的程序列出每一行,那么就只需要将返回的答案与搜索值进行比较。
 
A B C
A F R
 
如果第一个值为“A”,则使用该行
如果第二个值为“F”,则使用该行

pBe 发表于 2022-7-5 23:58:20

这看起来很有趣。
 
可能是一个用于输入数据的对话框?

Luís Augusto 发表于 2022-7-6 00:03:24

 
谢谢你提议教比格尔。
 
我需要经常做这种查询。附上一个示例文件。
我想作为参数传递一个变量,其值是您的主键,然后用零件描述的值设置另一个变量。
 
提前谢谢。
 
这是提供Lee功能的列表。
 
样品csv
 
(
   ("PRIMARY_KEY" "PART_DESCRIPTION")
   ("AM0.35" "DESCRIPTION AM0.35")
   ("AZ0.35" "DESCRIPTION AZ0.35")
   ("BR0.35" "DESCRIPTION BR0.35")
   ("CZ0.35" "DESCRIPTION CZ0.35")
   ("LR0.35" "DESCRIPTION LR0.35")
   ("MR0.35" "DESCRIPTION MR0.35")
   ("PR0.35" "DESCRIPTION PR0.35")
   ("RS0.35" "DESCRIPTION RS0.35")
   ("RX0.35" "DESCRIPTION RX0.35")
   ("VD0.35" "DESCRIPTION VD0.35")
)

Luís Augusto 发表于 2022-7-6 00:06:37

 
对不起,在PBE之前没有回答。
事实上,价值正在交付查询这一刻,我会被告知之前。让我解释清楚。
在这种情况下,主键是两个串联的字符串。这些字符串由initget通知,这样用户就不会在键入时出错。
上面列表中的最后一个结果为VD0.35,但实际上为“VD”“0.35”。
页: [1] 2
查看完整版本: 进行查询