none
Ler text do fim para o inicio RRS feed

  • Pergunta

  • Pessoal tenho uma arquivo text com milhares de linhas. Gostaria de começar a ler do fim para o inicio.

    Hoje está do inicio para fim

                       

    if (openFileDialog2.ShowDialog() == DialogResult.OK)
                {

                        while ((line = sr.ReadLine()) != null)
                        {

                        }


                }


    Junior Santana

    terça-feira, 15 de outubro de 2019 16:00

Respostas

  •   

    Jr_inc,

      Ideia rápida...
      ... guarde tudo em uma array e depois leia de trás para frente.

    // Example #2
    // Read each line of the file into a string array. Each element
    // of the array is one line of the file.
    string[] lines = System.IO.File.ReadAllLines(@"C:\Users\Public\TestFolder\WriteLines2.txt");
    
    // Display the file contents by using a foreach loop.
    System.Console.WriteLine("Contents of WriteLines2.txt = ");
    foreach (string line in lines)
    {
        // Use a tab to indent each line of the file.
        Console.WriteLine("\t" + line);
    }

    ==========================================
    Como: ler um arquivo de texto (Guia de Programação em C#)

    https://docs.microsoft.com/pt-br/dotnet/csharp/programming-guide/file-system/how-to-read-from-a-text-file
    ==========================================

    for (int i = lines.Count(); i > lines.Count(); i--) 
        Console.WriteLine(i);
    }


    []'s,
    Fabio I.

    • Editado Fabio I terça-feira, 15 de outubro de 2019 16:23
    • Sugerido como Resposta IgorFKModerator terça-feira, 15 de outubro de 2019 16:43
    • Marcado como Resposta Jr_inc terça-feira, 29 de outubro de 2019 11:42
    terça-feira, 15 de outubro de 2019 16:19

Todas as Respostas

  •   

    Jr_inc,

      Ideia rápida...
      ... guarde tudo em uma array e depois leia de trás para frente.

    // Example #2
    // Read each line of the file into a string array. Each element
    // of the array is one line of the file.
    string[] lines = System.IO.File.ReadAllLines(@"C:\Users\Public\TestFolder\WriteLines2.txt");
    
    // Display the file contents by using a foreach loop.
    System.Console.WriteLine("Contents of WriteLines2.txt = ");
    foreach (string line in lines)
    {
        // Use a tab to indent each line of the file.
        Console.WriteLine("\t" + line);
    }

    ==========================================
    Como: ler um arquivo de texto (Guia de Programação em C#)

    https://docs.microsoft.com/pt-br/dotnet/csharp/programming-guide/file-system/how-to-read-from-a-text-file
    ==========================================

    for (int i = lines.Count(); i > lines.Count(); i--) 
        Console.WriteLine(i);
    }


    []'s,
    Fabio I.

    • Editado Fabio I terça-feira, 15 de outubro de 2019 16:23
    • Sugerido como Resposta IgorFKModerator terça-feira, 15 de outubro de 2019 16:43
    • Marcado como Resposta Jr_inc terça-feira, 29 de outubro de 2019 11:42
    terça-feira, 15 de outubro de 2019 16:19
  • Até pensei em fazer algo assim.

    Tipo, ler tudo e colocar num list e usar lambda para começar a ler do fim.

    Mas não ficaria muito pesado? Considerando que o text tem sempre acima de 10mb, e vai estar em outro servidor.

    E cada vez que uma nova linha for incluída, o programa precisa pegar.

    Qual seria a melhor pratica?


    Junior Santana

    terça-feira, 15 de outubro de 2019 17:02
  • Jr_inc,

       Dependendo do tamanho do arquivo pode demorar, mas como se trata de arquivo texto, nem tanto assim.
       Não sei precisar sobre isso.

    []'s,
    Fabio I.
    terça-feira, 15 de outubro de 2019 19:32
  • Bom dia Fabio. Procurei outras alternativas e não encontrei.

    Segui sua sugestão. Obrigado


    Junior Santana

    terça-feira, 29 de outubro de 2019 11:41
  • Jr_inc,

       Obrigado por me pontuar.

    []'s,
    Fabio I.
    terça-feira, 29 de outubro de 2019 12:26