Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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);
            }
        }