Domanda

Dovrei prefigurarlo dicendo che sto lavorando su un'app per Pocket PC e che i file di dati vivono su schede SD.

Ho un'app che deve creare un array di dimensioni x. malloc fallisce ogni volta.

Ho un file da 1 concerto su una scheda da 4 concerti.
Ho 64 megabyte di memoria integrata (ram / data / application / os)
Non riesco a elaborare i dati perché l'array di cui ho bisogno è troppo grande.
L'accesso a una scheda SD è quasi veloce come ram.
Sto lavorando in C ++ (mfc)

qual è il modo migliore per accedere al file che userò come un array?
O ci sarebbe un modo diverso per farlo?

È stato utile?

Soluzione

Dovresti creare un file abbastanza grande per l'array, opportunamente imbottito (secondo GetSystemInfo) e mappare il file con CreateFileMapping / MapViewOfFile.

Atleast, quello sarebbe il mio primo tentativo: potrebbero esserci delle restrizioni sulla dimensione di un file mappato su CE.

Altri suggerimenti

Dovresti creare una finestra di n record (che si adatteranno alla memoria) e spostare quella finestra in modo da mantenere i record su cui stai lavorando. Non sono abbastanza fluente in mfc per darti un esempio di codice, ma non sarebbe così difficile.

In c # scriverei un IEnumerable personalizzato < T >

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