2

I/O DLL を使用して SPSS 15 とインターフェイスする C++ でアプリケーションを作成しています。

当社の SPSS データベースは多数のケースで構成されており、それぞれに固有の「ID」フィールドがあります。

私がする必要があるのは、データベースを読み取り/書き込みで開き、一致する ID を持つケースを見つけ、私のプログラムが解析する CSV ファイルに従っていくつかの変数を変更することです。

最初から 2 つの明らかなケースがあります。

  • 一致するケースが存在しません (その場合、spssOpenAppend() を使用して簡単にケースを追加できます。

  • 一致するケースが存在します。(そしてこれが問題のケースです)

後者では、spssOpenWriteCopy() を使用して書き込みハンドルを取得し、spssOpenRead() を使用して読み取りハンドルを取得する必要があります。私はあまり熱心ではありませんが、DLL でそれを行う唯一の方法のようです。問題は、書き込みファイルのケース ポインターを移動できないことです (どうやら、ケース ポインターの移動は読み取り専用操作です)。

つまり、興味のあるケースが見つかるまで、すべてのファイルを反復処理してすべてのデータをケースごとにコピーすることなく、ケースを変更する方法を見つけようとして立ち往生しています。

SPSS のアップグレードはオプションではないことを付け加えたいと思います。

また、ケースバイケースで手動で繰り返し、新しいファイルを最初から作成する必要も避けたいと思います。

4

1 に答える 1

1

それが解決された今、誰もわざわざ答えるつもりはないと思います。

とにかく、データベースの途中にケースを挿入することはできません。API の周りにラッパーを記述してシミュレートすることもできますが、それ以外の場合は、各ケースを手動で反復してコピーしない限り、私がやろうとしていることを実行する方法はありません。

于 2011-07-04T04:03:00.993 に答える