LER ARQUIVO DE TEXTO GRANDE
                           olá amigos, 
preciso ler um arquivo de texto, em alguns casos, tenho erro de estouro de memoria [Ô]Exceção do tipo [ô]System.OutOfMemoryException[ô] foi acionada.[Ô] uso o código abaixo:
Dim fluxoTexto As IO.StreamReader
fluxoTexto = New IO.StreamReader(nomeArq, System.Text.Encoding.Default)
Dim stext As String = fluxoTexto.ReadToEnd
alguém sabe de algum modo de ler ( de forma rápida) arquivos grandes de texto?
desde já agradeço
                
            preciso ler um arquivo de texto, em alguns casos, tenho erro de estouro de memoria [Ô]Exceção do tipo [ô]System.OutOfMemoryException[ô] foi acionada.[Ô] uso o código abaixo:
Dim fluxoTexto As IO.StreamReader
fluxoTexto = New IO.StreamReader(nomeArq, System.Text.Encoding.Default)
Dim stext As String = fluxoTexto.ReadToEnd
alguém sabe de algum modo de ler ( de forma rápida) arquivos grandes de texto?
desde já agradeço
                    1- Qual o tamanho desse arquivo texto? 
2- Poste toda a rotina envolvida, não somente a parte que lê o arquivo texto.
            2- Poste toda a rotina envolvida, não somente a parte que lê o arquivo texto.
                    oi Jaba,
1- tamanho do arquivo de texto atual 300Mb pode subir
2 código:
Public Function lerArquivo(nomeArq As String) As String
Try
If IO.File.Exists(nomeArq) = False Then Return [Ô][Ô]
Dim fluxoTexto As IO.StreamReader
fluxoTexto = New IO.StreamReader(nomeArq, System.Text.Encoding.Default)
Dim stext As String = fluxoTexto.ReadToEnd
fluxoTexto.Close()
Return stext
Catch ex As Exception
Trata_Erro(ex)
Return [Ô][Ô]
Finally
End Try
End Function
            1- tamanho do arquivo de texto atual 300Mb pode subir
2 código:
Public Function lerArquivo(nomeArq As String) As String
Try
If IO.File.Exists(nomeArq) = False Then Return [Ô][Ô]
Dim fluxoTexto As IO.StreamReader
fluxoTexto = New IO.StreamReader(nomeArq, System.Text.Encoding.Default)
Dim stext As String = fluxoTexto.ReadToEnd
fluxoTexto.Close()
Return stext
Catch ex As Exception
Trata_Erro(ex)
Return [Ô][Ô]
Finally
End Try
End Function
                    MAXCIM, acredito que o seu problema está no tamanho máximo que uma string pode receber. Se não me engano, o limite é 2 ^ 31 para sistemas 32 bits, que fica em torno de 2147483648 caracteres. 
                
            
                    e com faço para trabalhar com string de tamanhos realmentes grandes?
                
            
                    A ideia é mais ou menos assim: Você vai ter que ler esses dados por pedaços, aà quando ocorrer o estouro de memoria, guarda a posição do ponteiro no arquivo. Após isso, use o texto que já está na string para o que você pretende, depois libere essa string e cria uma nova para ler a partir da posição que deu erro.
Pergunta: Onde você pretende jogar esse texto?
            Pergunta: Onde você pretende jogar esse texto?
                    é o  DUMP do mysql.
leio o arquivo e executo no MySqlScript.execute
            leio o arquivo e executo no MySqlScript.execute
                    e ler linha a linha não resolveria?
                
            
                    resolve, Nicksoft, mas é lento, o MySqlScript.execute me permite executar blocos inteiros, isso torna o processo bem mais rápido!
                
            
                    mas se não da suporte ao arquivo completo, vai te obrigar a algo assim...
já tive q ler arquivo de mais de Gb nessa condição....
            já tive q ler arquivo de mais de Gb nessa condição....
                    Nick, tem que haver um modo de ler o bloco,  o  loaddump do mysql  é extremamente rápido  para subir esse arquivo, o tempo que ele leva para restaurar eu nem li 1/4 das linhas do arquivo. isso mostra que que no código dele  , o bloco é tratado inteiramente. 
                
            
                        Tópico encerrado , respostas não são mais permitidas