问题描述
privatevoidbutton1_Click(objectsender,EventArgse){title[0]="请你选择你原数据文件。";title[1]="请你选择你新数据文件。";for(inti=0;i<2;i++){OpenFileDialogopenFileDialog1=newOpenFileDialog();openFileDialog1.Title=title[i];stringdir=@"D:";openFileDialog1.InitialDirectory=dir;stringfilter="所有文件(*.*)|*.*";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,refdianold_line,filepath);}else{Read_data(dian_new,refdiannew_line,filepath);}}}}publicvoidRead_data(double[,]data1,refintnum,stringfilepath1)//读取文件,写入数组{stringpath=filepath1;string[]lines=File.ReadAllLines(path);num=lines.Length;for(inti=0;i<num;i++){string[]toks=lines[i].Split(newchar[]{'','t'},StringSplitOptions.RemoveEmptyEntries);System.Diagnostics.Debug.Assert(toks.Length==4);for(intj=0;j<4;j++){boolsucceeded=double.TryParse(toks[j],outdata1[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进行读取。
解决方案
解决方案二:
逻辑有点混乱,有点复杂换一种解决方案!
解决方案三:
可能是逻辑有点问题,但能否帮我解答上面提出的问题,谢啦谢!