这段代码,大家帮我看看出了什么问题
private void button1_Click(object sender, EventArgs e){
title[0] = "请你选择你原数据文件。";
title[1] = "请你选择你新数据文件。";
for (int i = 0; i <2; i++)
{
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Title = title[i];
string dir = @"D:\";
openFileDialog1.InitialDirectory = dir;
string filter = "所有文件(*.*)|*.*";
openFileDialog1.Filter = filter;
openFileDialog1.ShowDialog();
openFileDialog1.Multiselect = false;
if (openFileDialog1.ShowDialog() == DialogResult.Cancel)
{
MessageBox.Show("没有选择文件或者文件有误,请重新选择");
return;
}// 提示出错信息
else
{
filepath = openFileDialog1.FileName;
if (i == 0)
{
Read_data(dian_old, ref dianold_line, filepath);
}
else
{ Read_data(dian_new, ref diannew_line, filepath); }
}
}
}
public void Read_data(double[,] data1, ref int num, string filepath1) //读取文件,写入数组
{
string path = filepath1;
string[] lines = File.ReadAllLines(path);
num = lines.Length;
for (int i = 0; i < num; i++)
{
string[] toks = lines[i].Split(new char[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries);
System.Diagnostics.Debug.Assert(toks.Length == 4);
for (int j = 0; j < 4; j++)
{
bool succeeded = double.TryParse(toks[j], out data1[i, j]);
System.Diagnostics.Debug.Assert(succeeded);
}
}
}
此段代码是要实现分别从两个数据文件中读取数据,然后写入到数组中去。红色的是已经定义好长度的二维数组,dian_old[5000,4],dian_new[5000,4],请问:
1.调用Read_data()方法后,这两个数组会不会分别返回更新?不会的话,又改怎样返回更新?
2.运行代码后,在打开文件读取时,会出现读取两次,也就是原数据文件—>原数据文件—>新数据文件—>新数据文件。请问是什么原因?
3.在打开文件后,想把读取到的文件的完整路径赋给filepath,然后传递给Read_data进行读取。请问是不是这样赋路径:filepath =openFileDialog1.FileName ?
不是的话,又是怎样读取完整路径赋给filepath,再传递给Read_data进行读取。 --------------------编程问答-------------------- 逻辑有点混乱,有点复杂
换一种解决方案! --------------------编程问答-------------------- 可能是逻辑有点问题,但能否帮我解答上面提出的问题,谢啦谢!
补充:.NET技术 , C#