Pergunta

Eu deveria prefaciar isso dizendo que estou trabalhando em um aplicativo Pocket PC e os arquivos de dados vivem nos cartões SD.

Eu tenho um aplicativo que precisa criar uma matriz de tamanho x. Malloc está falhando sempre.

Eu tenho um arquivo de 1 show em um cartão de 4 shows.
Eu tenho 64 megs de memória a bordo (RAM/Dados/Application/OS)
Não posso processar os dados porque a matriz de que preciso é muito grande.
O acesso a um cartão SD é quase tão rápido quanto a RAM.
Estou trabalhando em C ++ (MFC)

Qual é a melhor maneira de acessar o arquivo que vou usar como uma matriz?
Ou haveria uma maneira diferente de fazer isso?

Foi útil?

Solução

Você deve criar um arquivo grande o suficiente para a matriz, acolchoada adequadamente (de acordo com getsystemInfo) e o mapa do arquivo com createfilemapping/mapViewOffile.

Pelo menos, essa seria minha primeira tentativa - pode haver restrições sobre o tamanho de um arquivo mapeado no CE.

Outras dicas

Você precisaria criar uma janela de N Records (que se encaixará na memória) e mover essa janela para manter os registros em que você está trabalhando nela. Não sou fluente o suficiente no MFC para fornecer uma amostra de código, mas não seria tão difícil.

Em C# eu escrevia um Ienumerable personalizadou003CT>

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top