我正在用 C++ 编写一个应用程序,它使用他们的 I/O DLL 与 SPSS 15 交互。
我们的 SPSS 数据库由多个案例组成,每个案例都有其唯一的“ID”字段。
我需要做的是以读/写方式打开数据库,找到具有匹配ID的案例并根据我的程序解析的CSV文件修改一些变量。
从一开始就有两个明显的案例:
匹配的案例不存在(在这种情况下,我可以轻松地使用 spssOpenAppend() 添加案例。
匹配案例存在。(这是有问题的情况)
在后者中,我需要使用 spssOpenWriteCopy() 来获取写入句柄,并使用 spssOpenRead() 来获取读取句柄。虽然我对此不太感兴趣,但似乎这是使用他们的 DLL 完成此操作的唯一方法。问题是我无法在写入文件上移动 case 指针(显然,移动 case 指针是只读操作)
这意味着我一直试图弄清楚如何修改案例,而不必逐个遍历所有文件并复制所有数据,直到找到我感兴趣的案例。
我想补充一点,升级 SPSS 不是一种选择。
我还想避免手动逐个迭代并从头开始构建一个新文件。