} // fim do método btAbrirArquivo_MouseClick private void btProximoRegistro_MouseClick(object sender, MouseEventArgs e) { // deserialia objetos da classe Registro e armazena os dados nas TextBoxes try { // get next Record available in file Registro registro = (Registro)reader.Deserialize(arquivo_entrada); // armazena valores de Registro num array de string string[] values = new string[] { registro.getConta().ToString(), registro.getPrimeiroNome().ToString(), registro.getUltimoNome().ToString(), registro.getSaldo().ToString() }; // copia os valores do array de string nos valores dos TextBox SetTextBoxValues(values); } // trata excecção, quando não existe Registro no arquivo catch (SerializationException) { // fecha FileStream se não houver Registro no arquivo arquivo_entrada.Close(); // abilita o botão para abrir arquivo btAbrirArquivo.Enabled = true; // disabilita botão de próximo Registro btProximoRegistro.Enabled = false; ClearTextBoxes(); // notifica o usuário se não existe Registro em arquivo MessageBox.Show("Não existem mais registros no arquivo", "", MessageBoxButtons.OK, MessageBoxIcon.Information); } } // fim do método btProximoRegistro_MouseClick
private void btAbrir_arquivo_Click(object sender, EventArgs e) { // cria caixa de diálogo para usuário abrir arquivo OpenFileDialog fileChooser = new OpenFileDialog(); DialogResult result = fileChooser.ShowDialog(); string fileName; // nome do arquivo contendo os dados // sai do evento se o usuário clicar Cancel if (result == DialogResult.Cancel) { return; } // obtém o nome do arquivo para leitura fileName = fileChooser.FileName; // mostra erro se o usuário digitou arquivo inválido if (fileName == "" || fileName == null) { MessageBox.Show("Nome de arquivo inválido", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { // cria FileStream para obter acesso de leitura ao arquivo arquivo_entrada = new FileStream(fileName, FileMode.Open, FileAccess.Read); btSaldo_positivo.Enabled = true; btSaldo_negativo.Enabled = true; btSaldo_nulo.Enabled = true; } while (true) { try { // get next Record available in file Registro registro = (Registro)reader.Deserialize(arquivo_entrada); if (double.Parse(registro.getSaldo().ToString()) == 0) { nulos.Add(registro); nu++; } if (double.Parse(registro.getSaldo().ToString()) > 0.0) { positivos.Add(registro); po++; } if (double.Parse(registro.getSaldo().ToString()) < 0) { negativos.Add(registro); ne++; } } catch (SerializationException) { arquivo_entrada.Close(); btFechar_arquivo.Enabled = true; btAbrir_arquivo.Enabled = false; break; } } }