Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Leitura de arquivo não quebra linha

A leitura do arquivo funciona, porém, o texto aparece sem quebra de linhas. Nas propriedades do Textbox a opção de Multiline está ligada.

segue o código que carrega o arquivo:

        private void carregaTexto(string arquivo) {
            if (File.Exists(arquivo)) {
                Stream entrada = File.Open(arquivo, FileMode.Open);
                StreamReader leitor = new StreamReader(entrada);
                string linha = leitor.ReadLine();
                while (linha != null) {
                    //MessageBox.Show(linha);
                    texto.Text += linha;
                    linha = leitor.ReadLine();
                }
                leitor.Close();
                entrada.Close();
            }
        }

Dentro do while, tentei formar um \n, mas não quebra as linhas. Apenas no final de todo o arquivo:

                while (linha != null) {
                    //MessageBox.Show(linha);
                    texto.Text += linha + "\n";
                    linha = leitor.ReadLine();
                }

Para salvar o arquivo, se adicionar quebra de linha no Textbox, ele salva normal.

5 respostas

obs. se usar o MassageBox.Show dentro do while, ele apresenta as linhas certas... linha por linha...

                while (linha != null) {
                    MessageBox.Show(linha);
                    texto.Text += linha + "\n";
                    linha = leitor.ReadLine();
                }
solução!

Fala Guilherme, beleza cara? :D

Se você fizer assim a quebra de linha funciona:


texto.Text = leitor.ReadToEnd();

A resposta estava na próxima questão, exatamente como me falou... Me faltou um pouco de paciência. hahaha Mas muito obrigado

Beleza cara, qualquer coisa tamo aí :D

Eu achei mais interessante utilizar ReadToEnd, ler arquivo até o final sendo assim não precisa do loop while.

Stream entrada = File.Open("arquivo.txt", FileMode.Open); StreamReader leitor = new StreamReader(entrada); string linha = leitor.ReadToEnd(); string texto = ""; Console.WriteLine($"{texto += linha}");