I/O DLL を使用して SPSS 15 とインターフェイスする C++ でアプリケーションを作成しています。
当社の SPSS データベースは多数のケースで構成されており、それぞれに固有の「ID」フィールドがあります。
私がする必要があるのは、データベースを読み取り/書き込みで開き、一致する ID を持つケースを見つけ、私のプログラムが解析する CSV ファイルに従っていくつかの変数を変更することです。
最初から 2 つの明らかなケースがあります。
一致するケースが存在しません (その場合、spssOpenAppend() を使用して簡単にケースを追加できます。
一致するケースが存在します。(そしてこれが問題のケースです)
後者では、spssOpenWriteCopy() を使用して書き込みハンドルを取得し、spssOpenRead() を使用して読み取りハンドルを取得する必要があります。私はあまり熱心ではありませんが、DLL でそれを行う唯一の方法のようです。問題は、書き込みファイルのケース ポインターを移動できないことです (どうやら、ケース ポインターの移動は読み取り専用操作です)。
つまり、興味のあるケースが見つかるまで、すべてのファイルを反復処理してすべてのデータをケースごとにコピーすることなく、ケースを変更する方法を見つけようとして立ち往生しています。
SPSS のアップグレードはオプションではないことを付け加えたいと思います。
また、ケースバイケースで手動で繰り返し、新しいファイルを最初から作成する必要も避けたいと思います。