我在文本文件上运行StreamReader
并将数据存储到ArrayList
中。数据以“,”分隔,并存储约会日期和时间。有些患者只看过两次,所以我不得不在文本文件中添加任何数据,但仍然添加“,”以确保StreamReader
移过来。StreamReader从文本文件中读取
但是,当它到达只有两次访问的Patient
时,它将停止读取文件并将数据存储到该点。我有一个try
/catch
错误处理,它告诉我什么时候停止读取文件。
例如;
1, Name,DOB,12/12/2015,13/12/2015,,,,
2, Name,DOB,11/11/2015,,,,
它读取了全部5次访问的所有患者,但是在“”之间没有数据的患者停止阅读。
我的阅读代码如下;
public static void LoadPatient(string filename)
{
try
{
StreamReader file = new StreamReader(filename); //System IO for StreamReader
while (!file.EndOfStream)
{
string line = file.ReadLine();
string[] fields = line.Split(",".ToCharArray());
int PID = int.Parse(fields[0]);
string pName = fields[1];
string NIN = fields[2];
DateTime pDOB = DateTime.Parse(fields[3]);
string pGender = fields[4];
DateTime Visit1 = DateTime.Parse(fields[5]);
int Duration1 = int.Parse(fields[6]);
DateTime Visit2 = DateTime.Parse(fields[7]);
int Duration2 = int.Parse(fields[8]);
DateTime Visit3 = DateTime.Parse(fields[9]);
int Duration3 = int.Parse(fields[10]);
DateTime Visit4 = DateTime.Parse(fields[11]);
int Duration4 = int.Parse(fields[12]);
DateTime Visit5 = DateTime.Parse(fields[13]);
int Duration5 = int.Parse(fields[14]);
Patient p = new Patient();
p.ID = PID;
p.Name = pName;
p.DOB = pDOB;
p.Gender = pGender;
p.NIN = NIN;
p.Visit1 = Visit1;
p.Duration1 = Duration1;
p.Visit2 = Visit2;
p.Duration2 = Duration2;
p.Visit3 = Visit3;
p.Duration3 = Duration3;
p.Visit4 = Visit4;
p.Duration4 = Duration4;
p.Visit5 = Visit5;
p.Duration5 = Duration5;
patientList.Add(p);
}
file.Close();
}
catch (Exception)
{
MessageBox.Show("Error loading Data file");
}
}
大概之间没什么的“”可以被解析既不是整数,也没有日期时间 –
你会建议不转换他们,直到他们被读入ArrayList中 – Griff
别后如果它们为空,则将它们转换为 –