Usuário com melhor resposta
Leitura Arquivos txt

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.
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
Todas as 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