ERRO 14 AO CARREGAR ARQUIVO TXT

MLALEX 21/07/2011 20:48:35
#379707
Olá pessoal!! O problema é o seguinte: vou carregar um arquivo .txt com 87 megas de tamanho e dá o erro 14 [Ô]out of string space[Ô]. Não me parece ser um arquivo tão grande assim para encher a memória, mas parece que o problema tem haver com memória. Utilizo o seguinte código para abrir o arquivo

i = FreeFile
Open CaminhoListas & Combo1.Text & [Ô].lfc[Ô] For Binary As i
ConteudoBD = String(LOF(i), 32)
Get i, i, ConteudoBD
Close i


Agora porque o problema só acontece quando abro o arquivo com o Visual Basic??? Porque não acontece quando abro com o bloco de notas ou WordPad??? O que está acontecendo???
   
TECLA 22/07/2011 15:26:59
#379760
Resposta escolhida
Ja tentou usar o comando [Ô]For Input[Ô] com o [Ô]Line Input[Ô] ao inves do [Ô]Binary[Ô]?
MLALEX 22/07/2011 15:51:25
#379763
Valeu a dica Tecla, mas não posso usar esse comando, pois dessa forma vai carregar linha por linha e isso iria demorar demais. Acabei de descobrir agora, que não é exatamente ao carregar o arquivo que o erro acontece e sim depois de carregar, quanto uso o comando replace. Ou seja, quando ele vai trocar alguns caracteres nos dados já carregados, acontece o erro. Continuo achando que está exigindo muito da memória. Minha memória estaria com problemas??? Vou tentar compilar o programa e testar em outras máquinas com mais e menos memória para ver o que acontece. Continuo aceitando sugestões. Valeu!!!
ROBIU 23/07/2011 07:47:10
#379795
Onde você está carregando isso? Em String, em Controles ou ambos? Verifique se a String ou controle que você está usando suporta a quantidade de dados que possui no arquivo txt. Um arquivo Txt com 87 mg!!!! isso dá quantas linhas.

Veja aqui motivo do erro 14, e como tratá-lo



Obs: Já testou colocar um DoEvents para evitar efeito travar?
i = FreeFile
Open CaminhoListas & Combo1.Text & [Ô].lfc[Ô] For Binary As i
ConteudoBD = String(LOF(i), 32)
DoEvents
Get i, i, ConteudoBD
Close i
MLALEX 23/07/2011 10:49:05
#379809
Estou carregando em uma string publica em um módulo, ou seja,

Public ConteudoBD As String


87 Mb dão mais de 800.000 (oitocentos mil) linhas

Descobri que o problema não está em carregar a string, e sim, depois de carregar, quando uso o comando Replace para retirar as quebras de linhas em excesso:

ConteudoBD = Replace(ConteudoBD, vbCrLf & vbCrLf, [Ô][Ô])
é aqui que o erro 14 aparece. Talvez seja muito para a string guardar tudo isso.



Não sei como declarar a variável ConteudoBD em Controles. Será que isso resolveria???
Tópico encerrado , respostas não são mais permitidas