我是一名编程学生,并决定制作一个简单的程序来练习。这是一个简单的表格,有姓名、出生日期、地址等,它被保存在一个文本文件中(我知道有更简单的方法,但我想学习所有这些方法并从这个开始=))
我有一个按钮可以按名称搜索此人是否已保存,如果是,则应该用数据填写表格。
这是如何保存的示例:
38b7aa1f-0afb-4fe5-a8f6-40fe953eb1ca;Cindy;22/07/2005;111.111.111-11;22.222.222-2;33333-333;Testes;2112;05;Testando;Testadora;SP;cindy@gmail.com;(44)44444-4444;(55)55555-5555;True;True;Rose;26/05/1950;666.666.666-66;77.777.777-7
因此,名称 (Cindy) 将在数组的索引 [1] 中。
问题是这个错误:index was outside the bounds of the array 在这一行:if (linha[1] == txtboxNome.Text)
我在互联网上搜索并有点理解问题,但仍然不知道如何解决它。
有人可以帮我吗?如何正确加载我的表单?
这是帮助您“查看”该程序的打印件。不要担心布局,一些东西在运行时会得到不透明度 0 =) http://i.imgur.com/jze16Pz.jpg
提前感谢=)
private void pesquisarNovoBtn_Click(object sender, RoutedEventArgs e)
{
var filePath = @"E:\Programação\WPF ConsultorioDentista\WPF ConsultorioDentista\bin\Debug\Pacientes.txt";
string[] resultado = null;
using (var abrirPacientes = System.IO.File.OpenText(filePath))
{
string lerPacientes = abrirPacientes.ReadLine();
while (lerPacientes != null)
{
var linha = lerPacientes.Split(';');
if (linha[1] == txtboxNome.Text)
{
resultado = linha;
break;
}
lerPacientes = abrirPacientes.ReadLine();
}
if (resultado == null)
{
MessageBox.Show("Paciente não encontrado.");
}
else
{
txtboxNome.Text = resultado[1];
txtboxData.Text = resultado[2];
txtboxCPF.Text = resultado[3];
txtboxRG.Text = resultado[4];
txtboxCEP.Text = resultado[5];
txtboxEndereco.Text = resultado[6];
txtboxNumero.Text = resultado[7];
txtboxCompl.Text = resultado[8];
txtboxBairro.Text = resultado[9];
txtboxCidade.Text = resultado[10];
txtboxUF.Text = resultado[11];
txtboxEmail.Text = resultado[12];
txtboxCel.Text = resultado[13];
txtboxTelRes.Text = resultado[14];
//checkBoxClinico.IsChecked = resultado[15];
//checkBoxOrto.IsChecked = resultado[16];
txtboxNomeResp.Text = resultado[17];
txtboxNascResp.Text = resultado[18];
txtboxCPFResp.Text = resultado[19];
txtboxRGResp.Text = resultado[20];
}
abrirPacientes.Close();
}