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 } }
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 }
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(); } }