Frage

Ich sollte dies vorbereiten, indem ich sage, dass ich an einer Pocket -PC -App und den Datendateien live auf SD -Karten arbeite.

Ich habe eine App, die eine Reihe von Größe x erstellen muss. Malloc versagt jedes Mal.

Ich habe eine 1 -Gig -Datei auf einer 4 -Gig -Karte.
Ich habe 64 Megs Onboard -Speicher (RAM/Daten/Anwendung/Betriebssystem)
Ich kann die Daten nicht verarbeiten, weil das Array, das ich brauche, zu groß ist.
Der Zugriff auf eine SD -Karte ist fast so schnell wie RAM.
Ich arbeite in C ++ (MFC)

Wie kann ich als Array am besten auf die Datei zugreifen?
Oder würde es einen anderen Weg geben, dies zu tun?

War es hilfreich?

Lösung

Sie sollten eine Datei erstellen, die für das Array, das für das Array groß genug ist, gepolstert (gemäß GetsystemInfo) und der Karte der Datei mit CreateFilemapping/MapViewoffile.

Zumindest wäre das mein erster Versuch - es könnte Einschränkungen dafür geben, wie groß eine zugeordnete Datei auf CE sein kann.

Andere Tipps

Sie müssten ein Fenster von N -Datensätzen erstellen (die in den Speicher passen) und dieses Fenster verschieben, um die Datensätze, an denen Sie arbeiten, darin zu halten. Ich bin in MFC nicht fließend genug, um Ihnen ein Code -Beispiel zu geben, aber es wäre nicht so schwierig.

In C# würde ich ein benutzerdefiniertes iEnumerable schreibenu003CT>

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top