示例#1
0
文件: DataSumula.cs 项目: rdrgma/TI2P
        /// <summary>
        /// Método para salvar as partidas da súmula em outro arquivo.
        /// </summary>
        /// <param name="fullName">Caminho completo do arquivo</param>
        public void SalvarArquivo(string fullName)
        {
            StreamWriter sw = new StreamWriter(fullName, false, System.Text.Encoding.GetEncoding(1252));
            sw.WriteLine(arvorePartidas.Count);

            Partida[] partidas = new Partida[arvorePartidas.Count];
            arvorePartidas.CopyTo(partidas);

            foreach (Partida item in partidas)
            {
                sw.Write(item.ToString());
            }
            sw.Close();
        }
示例#2
0
文件: DataSumula.cs 项目: rdrgma/TI2P
        /// <summary>
        /// Método de leitura do arquivo texto e transformação
        /// na estrutura de partida
        /// </summary>
        public void LerArquivo()
        {
            StreamReader sr = new StreamReader(arquivo.FullName, System.Text.Encoding.GetEncoding(1252));

            Partida aux = new Partida();
            Cartao cartao;
            Gol gol;
            Substituicao subs;
            aux.JogoNormal = new Placar();
            aux.Prorrogacao = new Placar();
            aux.Penaltis = new Placar();

            int sub = 0; // Variável que garante que ajam apenas 3 substituições

            int n = 0;
            //Pega a quantidade de súmulas no arquivo
            int.TryParse(sr.ReadLine(), out n);
            string read;

            int linha = 0; // Variável que indica o que procurar no arquivo
            string[] dados = null;

            while (!sr.EndOfStream)
            { // Enquanto não chegar ao final do arquivo
                read = sr.ReadLine().ToUpper();
                dados = read.Split(';');
                switch (linha)
                {
                    case 0: // Equipes
                        aux.EquipeA = dados[0].Trim();
                        aux.EquipeB = dados[1].Trim();
                        linha++;
                        break;
                    case 1: // Local e data
                        aux.Local = dados[0].Trim();
                        aux.Data = DateTime.Parse(dados[1].Trim() + " " + dados[2].Trim());
                        linha++;
                        break;
                    case 2: // Fase
                        aux.Fase = aux.GetFases(dados[0].Trim());
                        linha++;
                        break;
                    case 3: // Gols
                        int a, b;
                        if (dados.Length < 3)
                        {
                            if (dados.Length == 2)
                            {
                                int.TryParse(dados[0].Split('X')[0], out a);
                                int.TryParse(dados[0].Split('X')[1], out b);
                                aux.JogoNormal.GolsEquipeA = a;
                                aux.JogoNormal.GolsEquipeB = b;

                                int.TryParse(dados[1].Split('X')[0], out a);
                                int.TryParse(dados[1].Split('X')[1], out b);
                                aux.Prorrogacao.GolsEquipeA = a;
                                aux.Prorrogacao.GolsEquipeB = b;
                            }
                            if (dados.Length == 1)
                            {
                                int.TryParse(dados[0].Split('X')[0], out a);
                                int.TryParse(dados[0].Split('X')[1], out b);
                                aux.JogoNormal.GolsEquipeA = a;
                                aux.JogoNormal.GolsEquipeB = b;
                            }
                        }
                        else
                        {
                            int.TryParse(dados[0].Split('X')[0], out a);
                            int.TryParse(dados[0].Split('X')[1], out b);
                            aux.JogoNormal.GolsEquipeA = a;
                            aux.JogoNormal.GolsEquipeB = b;

                            int.TryParse(dados[1].Split('X')[0], out a);
                            int.TryParse(dados[1].Split('X')[1], out b);
                            aux.Prorrogacao.GolsEquipeA = a;
                            aux.Prorrogacao.GolsEquipeB = b;

                            int.TryParse(dados[2].Split('X')[0], out a);
                            int.TryParse(dados[2].Split('X')[1], out b);
                            aux.Penaltis.GolsEquipeA = a;
                            aux.Penaltis.GolsEquipeB = b;
                        }
                        linha++;
                        break;
                    default: //Dados complementares como Gol, Cartão, Substituição e Obs
                        if (dados[0].Contains(":"))
                        {
                            switch (dados[0].Split(':')[0])
                            {
                                case "GOL":
                                case "GOLS":
                                    gol = new Gol(dados[0].Split(':')[1], dados[1], byte.Parse(dados[2]));
                                    aux.Gols.Add(gol);
                                    break;
                                case "CARTÃO":
                                case "CARTAO":
                                case "CARTÕES":
                                    cartao = new Cartao(dados[0].Split(':')[1], dados[1], byte.Parse(dados[2]),
                                                        (TipoCartao)Enum.Parse(typeof(TipoCartao), dados[3]));
                                    aux.Cartoes.Add(cartao);
                                    break;
                                case "SUBS":
                                case "SUBSTITUIÇÃO":
                                case "SUBSTITUICAO":
                                case "SUBSTITUIÇÕES":
                                    subs = new Substituicao(dados[0].Split(':')[1], dados[1], dados[2], byte.Parse(dados[3]));
                                    aux.Substituicoes[sub++] = subs;
                                    break;
                                case "OBS":
                                case "OBSERVAÇÕES":
                                case "OBSERVACOES":
                                    aux.Obs.Add(new Observacao(dados[0].Split(':')[1]));
                                    break;
                            }
                        }
                        else
                        {
                            arvorePartidas.Add(aux);
                            aux = new Partida();
                            aux.JogoNormal = new Placar();
                            aux.Prorrogacao = new Placar();
                            aux.Penaltis = new Placar();
                            aux.EquipeA = dados[0].Trim();
                            aux.EquipeB = dados[1].Trim();
                            linha = 1;
                            sub = 0;
                        }
                        break;
                }
            }
            arvorePartidas.Add(aux);
        }
示例#3
0
文件: FormMain.cs 项目: rdrgma/TI2P
        /// <summary>
        /// Método para adicionar sumula
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btAdicionar_Click(object sender, EventArgs e)
        {
            Partida nova = new Partida();
            nova.EquipeA = txtEquipeA.Text;
            nova.EquipeB = txtEquipeB.Text;
            nova.Local = txtLocal.Text;
            if (rbPrimeiraFase.Checked)
                nova.Fase = Fases.PRIMEIRA_FASE;
            else if (rbOitavas.Checked)
                nova.Fase = Fases.OITAVAS;
            else if (rbQuartas.Checked)
                nova.Fase = Fases.QUARTAS;
            else if (rbSemiFinal.Checked)
                nova.Fase = Fases.SEMIFINAL;
            else if (rbTerceiroLugar.Checked)
                nova.Fase = Fases.DISPUTA_3_LUGAR;
            else if (rbFinal.Checked)
                nova.Fase = Fases.FINAL;

            nova.Data = dtpData.Value;

            nova.JogoNormal.GolsEquipeA = (int)nudPlacarNormalA.Value;
            nova.JogoNormal.GolsEquipeB = (int)nudPlacarNormalB.Value;
            nova.Prorrogacao.GolsEquipeA = (int)nudPlacarProrrogacaoA.Value;
            nova.Prorrogacao.GolsEquipeB = (int)nudPlacarProrrogacaoB.Value;
            nova.Penaltis.GolsEquipeA = (int)nudPlacarPenaltisA.Value;
            nova.Penaltis.GolsEquipeB = (int)nudPlacarPenaltisB.Value;

            for (int i = 0; i < dgvGols.Rows.Count - 1; i++)
            {
                nova.Gols.Add(new Gol(dgvGols[0, i].Value.ToString(), dgvGols[1, i].Value.ToString(), byte.Parse(dgvGols[2, i].Value.ToString())));
            }

            for (int i = 0; i < dgvCartoes.Rows.Count - 1; i++)
            {
                nova.Cartoes.Add(new Cartao(dgvCartoes[0, i].Value.ToString(), dgvCartoes[1, i].Value.ToString(),
                    byte.Parse(dgvCartoes[2, i].Value.ToString()), (TipoCartao)Enum.Parse(typeof(TipoCartao), dgvCartoes[3, i].Value.ToString())));

            }

            for (int i = 0; i < dgvSubstituicoes.Rows.Count - 1; i++)
            {
                if (i < 3)
                {
                    nova.Substituicoes[i] = new Substituicao(dgvSubstituicoes[0, i].Value.ToString(), dgvSubstituicoes[1, i].Value.ToString(),
                        dgvSubstituicoes[2, i].Value.ToString(), byte.Parse(dgvSubstituicoes[3, i].Value.ToString()));
                }
            }

            for (int i = 0; i < dgvObs.Rows.Count - 1; i++)
            {
                nova.Obs.Add(new Observacao(dgvObs[0, i].Value.ToString()));
            }

            dataSumula.ArvorePartidas.Add(nova);
            UpdateGridPrincipal();
            UpdateGrids(0);
        }