Domanda

Sto scrivendo un programma in C ++ che si interfaccia con SPSS 15 utilizzando il proprio I / O DLL.

database di

??La nostra SPSS è costituito da un certo numero di casi, ciascuno con il campo unico "ID".

Che cosa devo fare è aprire il database in lettura / scrittura, trovare il caso con l'ID corrispondente e modificare alcune delle variabili in base al file CSV che il mio programma analizza.

Ci sono 2 casi evidenti fin dall'inizio:

  • Il caso di corrispondenza non esiste (nel qual caso, posso facilmente usare spssOpenAppend () per aggiungere il caso.

  • esiste il caso di corrispondenza. (E questo è il caso problematico)

In quest'ultimo, ho bisogno di usare spssOpenWriteCopy () per ottenere un handle di scrittura e spssOpenRead () per avere un manico di lettura. Mentre io non sono troppo appassionato che, a quanto pare è l'unico modo per farlo con il loro DLL. Il problema è che non riesco a spostare il puntatore caso sulla scrittura di file (A quanto pare, spostando il puntatore caso è un'operazione di sola lettura)

Questo significa che mi sono bloccato cercando di capire come modificare un caso senza dover iterare su tutto il file e copiare tutti i dati, caso per caso, fino a trovare il caso che mi interessa.

Vorrei aggiungere che l'aggiornamento SPSS non è un'opzione.

Mi piacerebbe anche come per evitare di dover iterare manualmente caso per caso e costruire un nuovo file da zero.

È stato utile?

Soluzione

Immagino che nessuno sta andando a preoccuparsi di rispondere ora che è risolto.

In ogni caso, non è possibile inserire un caso nel bel mezzo di un database. Si potrebbe potenzialmente involucri di scrittura di tutto l'API per simulare esso, ma per il resto non c'è modo di fare quello che sto cercando di fare a meno di iterazione manualmente attraverso ogni caso e copiarlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top