Carregar arquivo gigante em C++ [RESOLVIDO]

1. Carregar arquivo gigante em C++ [RESOLVIDO]

Mauricio Souza Klein
Hebang

(usa Arch Linux)

Enviado em 28/08/2011 - 22:43h

Olá pessoal!

Estou precisando carregar um arquivo de mais de 30 mil linhas em memória para depois enviar esses dados pela rede.

Minha dúvida é: qual a melhor maneira de carregar esse texto imenso em uma string?

Por exemplo: Pensei em ler o arquivo linha a linha e concatenar a linha atual em uma string, algo como:
-----------------------------
string buffer = "";

while( le_linha )
buffer += linha
-----------------------------
Porem concatenar string é sempre custoso no final. Tentei usar stringstream, sem muito sucesso, uma vez que consegui apenas escrever ou apenas ler no stream, nunca os dois ao mesmo tempo.

Alguém saberia dizer qual a maneira ideal para carregar textos gigantes de arquivo na memória?

Grato pela atenção!


  


2. Como será?

Emerson Lara
snowbg

(usa CentOS)

Enviado em 13/09/2011 - 15:55h

Acho que você terá que gravar em disco utilizando métodos de paginação.


3. Re: Carregar arquivo gigante em C++ [RESOLVIDO]

Mauricio Souza Klein
Hebang

(usa Arch Linux)

Enviado em 13/09/2011 - 16:32h

Olá!

Obrigado pela sua resposta!

Utilizei o stringstream e parece estar funcionando OK. Além do mais, é o método mais recomendado em tópicos de C/C++.

Obrigado!


4. Ótimo!

Emerson Lara
snowbg

(usa CentOS)

Enviado em 14/09/2011 - 12:06h

Realmente é o recurso melhor aplicável. Mas requer memória (que é escassa em alguns tipos de equipamentos diferentes de computadores).







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts