none
Leitura Arquivos txt RRS feed

  • Pergunta

  • Tenho determinado numero de arquivos txts,preciso ler cada um desses arquivos de forma sequencial,e quando chegar no limite dos meus arquivos,eu preciso voltar para o primeiro,e ler mais uma quantidade de linhas e ir armazenando esses blocos em um novo arquivo txt,minha duvida é como vou fazer esse "loop" nos arquivos !

    Obrigado.

    quarta-feira, 20 de maio de 2015 14:23

Respostas

  • Olá IRafael,

    Fiz um código rápido espero que ajude.

    Não testei o código, apenas a lógica para te dar um norte:) 

    Espero ter ajudado, Abraços.

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.IO;
    
    namespace TesteLerArquivo
        {
        public partial class Form1 : Form
            {
            string linha;
            string bloco;
            public Form1()
                {
                InitializeComponent();
                }
    
            private void button1_Click(object sender, EventArgs e)
                {
                string path = @"C:\Users\...\Desktop\";
    
                /*Pega a quantidade de arquvios*/
                string[] PathArquivos = Directory.GetFiles(path);
    
                int contador = PathArquivos.Count();
    
                /*faz uma varredura e chama o método para ler o arquivo, passando um parâmetro */
                /*que irá dizer se é a primeira ou a segunda vez.*/
                for (int i = 0; i < contador; i++)
                    {
                    LerArquivo(PathArquivos[i], true);
                    }
    
                for (int i = 0; i < contador; i++)
                    {
                    LerArquivo(PathArquivos[i], false);
                    }
                }
    
            /*Metodo que ler o arquivo e decide se guarda a informação ou apenas lê.*/
            public void LerArquivo(string path, bool primeiraVez)
                {
                StreamReader str = new StreamReader(path);
                
                if (primeiraVez = true)
                    {
                    linha += str.ReadToEnd();
                    }
                else
                    {
                    bloco = str.ReadLine();
    
                    if (bloco == "Teste1")
                        {
                        /*Joga no arquivo que irá guardar as informações*/
                        }
    
    
                    }
    
                }
    
            }
        }
    

    • Marcado como Resposta lRafael quarta-feira, 20 de maio de 2015 18:18
    quarta-feira, 20 de maio de 2015 17:55

Todas as Respostas

  • Rafael,

    Segue um artigo que deve lhe ajudar:

    http://www.macoratti.net/14/04/c_cnio1.htm

    quarta-feira, 20 de maio de 2015 14:42
  • Olá IRafael,

    Fiz um código rápido espero que ajude.

    Não testei o código, apenas a lógica para te dar um norte:) 

    Espero ter ajudado, Abraços.

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.IO;
    
    namespace TesteLerArquivo
        {
        public partial class Form1 : Form
            {
            string linha;
            string bloco;
            public Form1()
                {
                InitializeComponent();
                }
    
            private void button1_Click(object sender, EventArgs e)
                {
                string path = @"C:\Users\...\Desktop\";
    
                /*Pega a quantidade de arquvios*/
                string[] PathArquivos = Directory.GetFiles(path);
    
                int contador = PathArquivos.Count();
    
                /*faz uma varredura e chama o método para ler o arquivo, passando um parâmetro */
                /*que irá dizer se é a primeira ou a segunda vez.*/
                for (int i = 0; i < contador; i++)
                    {
                    LerArquivo(PathArquivos[i], true);
                    }
    
                for (int i = 0; i < contador; i++)
                    {
                    LerArquivo(PathArquivos[i], false);
                    }
                }
    
            /*Metodo que ler o arquivo e decide se guarda a informação ou apenas lê.*/
            public void LerArquivo(string path, bool primeiraVez)
                {
                StreamReader str = new StreamReader(path);
                
                if (primeiraVez = true)
                    {
                    linha += str.ReadToEnd();
                    }
                else
                    {
                    bloco = str.ReadLine();
    
                    if (bloco == "Teste1")
                        {
                        /*Joga no arquivo que irá guardar as informações*/
                        }
    
    
                    }
    
                }
    
            }
        }
    

    • Marcado como Resposta lRafael quarta-feira, 20 de maio de 2015 18:18
    quarta-feira, 20 de maio de 2015 17:55