求助: 交集和 esprocW 的问题
大佬们,有两个问题恳请有空时看看,其中第二个问题之前在别的帖子里提起过 (https://c.raqsoft.com.cn/article/1772787045587),重复了,因为长时间没有回复,所以旧事重提了,见谅。
一、以下交集运算迷糊了,A1 和 A2 的结果都返回了 [2,2,2]:

这个结果应该返回 [2] 吧? 记得以前 isect 和 ^ 这两个运算跟预想的是一样的。
merge@oi() 的结果符合预期:

我用的是最最新的 jar 包,恳请大佬们有空看看测试一下🙏
二、使用 esprocW、btx.sh 时发现了几个问题:
1、文件名中除了后缀中的点,其余地方不能包含点,否则会报错,然后多关几次 close 程序就会卡住了,只能控制面板强制关闭,报错如下:

这个报错的原因是路径中有一个这样的文件 "Andrew.Fuller.xlsx",文件名中有多余的点,这个报错在 Mac 版本里的 btx.sh 也会有这样的报错。
2、打开文件时:
a. 有些文件双击打不开, 好像是行数多的双击打不开,行数少的双击能打开;
b. 是不是只能通过左侧面板上标 1 处的浏览按钮打开,才会出现右侧面板上方一整条操作按钮,比如保存和复杂保存按钮。
如果在右下角的命令框中写函数,运行后,数据上方就不会出现操作按钮?
c. 然后,标 3 处的文件名前多了一个下划线,源文件中没有下划线。

3、数据右上角的复杂保存按钮能保存为 ctx 格式,但保存后报错,会有文件生成,但打不开,是不是我操作不对,我直接保存了😄
程序当前是不是不能操作 ctx 文件,左上角的路径中不会显示 ctx 格式?


关于问题二的解答:
2.1 程序 bug,已解决;
2.2.a, 如果确认是行数多的打不开,则应该是程序的分配内存不够,或者这类大文件只能通过浏览按钮,在打开窗口选项中设置返回类型为游标,以游标方式打开它。
b,左边打开的面板直接有命名,从 Tab 列表可以看到名字,有名字的表才能有各种数据操作,包括保存;从命令窗口执行的结果,默认是没名字的,多次执行命令行时,计算结果都显示在无名窗口中,且会冲掉前面结果;要对无名结果进行后续数据计算时,需要先将它命名为有意义的名字;
c,文件名是 SPL 关键字 (比如 if),非法变量名 (比如 123),Excel 的格子名字(比如 A1),或者某些表名跟字段名重名等情形时,计算可能会出错。此时为了避免计算错误,会默认加前缀。 你的 LY2017 是一个合法的 Excel 格子名字
2.3 保存组表的程序有 bug,已更正。
有重复成员的交集,比较罕见,业界没什么明确定义,所以就是怎样实现顺手成本低就怎样来了。
多谢大佬指导解惑:
1、类似单元格的命名 (A1) 之前在 EXCEL 里碰到过,搞半天才知道是命名错了,碰到的一般都是一个字母,两个字母以上的不会下意识联想到是一个单元格,这回长记性了😂
2、命令窗口执行时是无名窗口,这个我后来发现了 rename 后就会有操作按钮出现,但不知道是这样的玄机,应该是我没仔细看操作文档😄
3、其他的谢谢了🙏
谢谢老贼回复😄
交集操作 isect 和 ^ 是我记错了,我一直以为 isect,^,merge@oi 这三者的行为是一致的。
怪不得有些 sql 语句在介绍交集时分了两种:
一种是去重后的交集,只关心是否相交,不关心出现次数,相当于是 isect.id()
另一种是关心出现次数,以出现次数少的为准,这个应该跟 merge@i 一致了。