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