private void TratarDados_Load(object sender, EventArgs e) { Controller.Thread1.Abort(); // Limpando a listas de alunos if (Controller.L_alunos1.Count() != 0) { for (int i = Controller.L_alunos1.Count; i >= 0; i--) { Controller.L_alunos1.RemoveAt(i); } } // limpando a lista de apontamentos if (Controller.L_apontamento1.Count() != 0) { for (int i = Controller.L_apontamento1.Count - 1; i >= -1; i--) { Controller.L_apontamento1.RemoveAt(i); } } try { int qtMaxima = 0; int Coutap = 0; //declarando a variavel do tipo StreamWriter StreamReader x; //Colocando o caminho fisico string Caminho = tb_caminho.Text; //abrindo um arquivo texto x = File.OpenText(Caminho); while (x.EndOfStream != true) //quer dizer que não chegou no fim do //arquivo { string linha2 = x.ReadLine(); if (linha2 == "") { x.Close(); break; } qtMaxima++; } string[,,] TodosApontamento = new string[12, 31, qtMaxima]; x = File.OpenText(Caminho); string recuperaDia = "", recuperaMes = ""; if (Controller.L_execoes1.Count() == 0 && Controller.L_apontamento1.Count() == 0) { //enquanto nao retornar valor booleano true while (x.EndOfStream != true)//quer dizer que não chegou no fim do //arquivo { //le conteúdo da linha string linha = x.ReadLine(); //escreve na tela o conteúdo da linha // Aqui eu devo salvar o texto em pedaços para // que eu possa criar o obj apontamento string status = linha.Substring(0, 2); string dia = linha.Substring(2, 2); string mes = linha.Substring(4, 2); string ano = linha.Substring(6, 4); string hora = linha.Substring(10, 2); string minuto = linha.Substring(12, 2); string segundo = linha.Substring(14, 2); string matricula = linha.Substring(16, 5); if (recuperaMes == mes && recuperaDia == dia) { Coutap = 0; } while (TodosApontamento[int.Parse(mes), int.Parse(dia), Coutap] != null) { Coutap++; } if (status == "01") { status = "Entrada"; Controller.QtEntrada++; } else { status = "Saida"; Controller.QtSaida++; } TodosApontamento[int.Parse(mes), int.Parse(dia), Coutap] = linha; Apontamento apm = new Apontamento(matricula, status, dia, mes, ano, hora, minuto, segundo, "Apontamento"); Controller.CarregaApontamentos(apm); // MessageBox.Show("Mes: "+int.Parse(mes)+" - Dia: "+ int.Parse(dia) + " - Arrey : "+Coutap +" - Conteudo: "+ TodosApontamento[int.Parse(mes), int.Parse(dia), Coutap]) ; Coutap++; recuperaDia = dia; recuperaMes = mes; } //após sair do while, é porque leu todo o conteúdo, então //temos que fechar o arquivo texto que está aberto Controller.TrataEx(); x.Close(); } } catch (Exception er) { MessageBox.Show("erro :" + er); MetroMessageBox.Show(this, "Erro ao tentar adicionar na lista.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information); } Controller.Thread1.Abort(); }
private void metroButton1_Click(object sender, EventArgs e) { lb_aguarde.Visible = true; int qt = 0; try { qt = Controller.SetDadosBanco(); MessageBox.Show("Tratamento de exceções efetuado com sucesso ! \n Quantidade de alunos novos adicionados: " + Convert.ToString(qt)); //Tratando exeções //abrindo txt StreamReader x; string Caminho = tb_caminho.Text; int qtex = Controller.L_execoes1.Count(); foreach (Apontamento ex in Controller.L_execoes1) { if (ex.Status == "Entrada") { Apontamento apm = new Apontamento(ex.Matricula_aluno, "Saida", ex.Dia, ex.Mes, ex.Ano, "18", "00", "00", "Exceção (A)"); Controller.CarregaApontamentos(apm); } else { Apontamento apm = new Apontamento(ex.Matricula_aluno, "Entrada", ex.Dia, ex.Mes, ex.Ano, "07", "00", "00", "Exceção (A)"); Controller.CarregaApontamentos(apm); } //verificando qual a exceãodo aluno para poder criar a correção } Controller.SetDadosBanco(); MessageBox.Show("Exceções tratadas com sucesso !"); } catch { MetroMessageBox.Show(this, "Falha ao tentar efetuar a conexão com o banco de dados, por favor entre em contato com o administrador.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning); } finally { lb_aguarde.Visible = false; } //Criando o txt com as exceções try { ////declarando a variavel do tipo StreamWriter para //abrir ou criar um arquivo para escrita StreamWriter arq; ////Colocando o caminho fisico e o nome do arquivo a ser criado //finalizando com .txt string CaminhoNome = tb_caminho.Text + "Excecao.txt"; //utilizando o metodo para criar um arquivo texto //e associando o caminho e nome ao metodo arq = File.CreateText(CaminhoNome); //aqui, exemplo de escrever no arquivo texto //como se fossemos criar um recibo de pagamento foreach (Apontamento apm in Controller.L_apontamento1) { if (apm.Status == "Entrada") { arq.WriteLine("01" + apm.Dia + apm.Mes + apm.Ano + apm.Hora + apm.Minuto + apm.Segundo + apm.Matricula_aluno); } else { arq.WriteLine("02" + apm.Dia + apm.Mes + apm.Ano + apm.Hora + apm.Minuto + apm.Segundo + apm.Matricula_aluno); } } //fechando o arquivo texto com o método .Close() arq.Close(); } catch (Exception excp) { MessageBox.Show("Erro ao tentar criar arquivo de exceção, por favor verifique as permissões de pasta" + excp); } }