コード例 #1
0
        private void LerMatriz(ref ListaCruzada m)        //método com argumento por referência
        {
            if (ofdAbrir.ShowDialog() == DialogResult.OK) //quando o arquivo texto for selecionado
            {
                StreamReader arq = new StreamReader(ofdAbrir.FileName);
                //instanciação do leitor de arquivo.
                int l = int.Parse(arq.ReadLine());      //leitura da quantidade de linhas
                int c = int.Parse(arq.ReadLine());      //leitura da quantidade de colunas
                m = new ListaCruzada(l, c);             //instanciação da matriz com a dimensão presente no arquivo texto.
                while (!arq.EndOfStream)                //enquanto não é fim do arquivo
                {
                    string   linha  = arq.ReadLine();   //string linha armazena toda a linha lida
                    string[] campos = linha.Split(';'); //separam-se os campos por meio do método Split no caractere de ponto e vírgula

                    //armazenam-se os campos conforme o formato '[valor];[linha];[coluna]'
                    double valor       = double.Parse(campos[0]);
                    int    valorLinha  = int.Parse(campos[1]);
                    int    valorColuna = int.Parse(campos[2]);

                    m.Incluir(new Celula(valor, valorLinha, valorColuna, null, null));
                    //por fim, é incluída nova célula com os valores lidos
                }
                arq.Close();             //fecha-se o arquivo
                ExibirComponentes(true); //exibem-se os componentes
                if (cbExibir.Checked)
                {
                    btnExibir.PerformClick();
                }
                MessageBox.Show("Matriz lida", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
                //ao final de muitos métodos desse formulário, exibe-se uma caixa de texto indicando
                //que a operação foi feita
            }
        }
コード例 #2
0
 private void btnExcluirMatriz_Click(object sender, EventArgs e)
 {
     //nesse evento, o objeto de ListaCruzada atual vai perder sua instância, recebendo
     //nulo
     if (cbxMatrizes.SelectedIndex == 0)
     {
         matriz1 = null;
     }
     else
     {
         matriz2 = null;
     }
     nudLinhas.Maximum  = int.MaxValue;
     nudColunas.Maximum = int.MaxValue;
     //os valores máximos dos NumericUpDown voltam a ser int.MaxValue
     if (cbExibir.Checked)
     {
         btnExibir.PerformClick();
     }
     ExibirComponentes(false); //componentes de edição são desabilitados
 }
コード例 #3
0
 private void btnCriarMatriz_Click(object sender, EventArgs e)
 {
     if (cbxMatrizes.SelectedIndex == 0) //se é a primeira matriz a selecionada
     {
         matriz1 = new ListaCruzada((int)nudLinhas.Value, (int)nudColunas.Value);
         //instanciação da matriz com a quantidade de linhas e colunas determinadas
         nudLinhas.Maximum  = matriz1.QtdLinhas;
         nudColunas.Maximum = matriz1.QtdColunas;
         //valores máximos dos NumericUpDown tornam-se iguais aos limites da matriz criada
     }
     else //se foi selecionada a segunda matriz, faz-se a mesma operação
     {
         matriz2            = new ListaCruzada((int)nudLinhas.Value, (int)nudColunas.Value);
         nudLinhas.Maximum  = matriz2.QtdLinhas;
         nudColunas.Maximum = matriz2.QtdColunas;
     }
     MessageBox.Show("Matriz criada", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
     ExibirComponentes(true); //exibem-se os componentes
     if (cbExibir.Checked)
     {
         btnExibir.PerformClick();
     }
 }