C#怎么读写文本文件
1、打开visual studio 2015,文件-新建-项目,或者文件-打开一个原有的项目。这里我们采用的是窗体应用程序。
2、首先定义变量用于存储从文本文件中读取的数据,可以是全局变量也可以是局部变量,具体情况根据个人编写的程序要求而定。、
string[] CoorptName;
int partNum = 0;//段号
double[] aerfa;//α角
double[] R;//半径
double[] Ls;//缓和曲线长
double[] TH;//切线长
double[] LT;//曲线长
double[,] Coor;//JD点的X,Y
double[] K_ZH;//各对应点里程
double[] K_HY;
double[] K_YH;
double[] K_HZ;
double[] Aj1;//线路坐标方位角
double[] Aj2;
3、下面编写对文本文件的读入的实现代码:OpenFileDialog是用于选择文件路径,然后打开文本文件
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";
openFileDialog.Multiselect = true;//可以选择多个文件
4、下面的using和catch是为了是程序更加完善,当出现错误时,提醒用户如何出错而设定的。
if (openFileDialog.ShowDialog(this) == DialogResult.OK)
{
textBox1.Text = openFileDialog.FileName;//文件路径
myname = openFileDialog.FileName;
try
{
using (StreamReader sr = new StreamReader(myname))
{
string line;
while ((line = sr.ReadLine()) != null)
{
string lineStr = line.Trim();
if (lineStr.Equals("") == false)//文件中有空行则不加
{
partNum++;
}
}
sr.Close();
}
}
catch (Exception ee)
{
MessageBox.Show(ee.Message);
}
5、数组的定义大家就根据个人情况而定,读取文本文件按一行行读进来: while ((line = sr.ReadLine()) != null)
每个数据之间可能是空格、中文逗号(,)或者英文逗号(,)等隔开的: string[] splitStr = line.Split(new Char[] { ' ', ',', ',' });
6、下面添加实现对文本文件的读取出来的代码,主要使用Substring函数来实现对每个数据的读取:
CoorptName[i] = splitStr[0];
degree[i] = System.Convert.ToDouble(splitStr[1].Substring(0, 3));//Substring()取出度分秒
minute[i] = System.Convert.ToDouble(splitStr[1].Substring(3, 2)) / 60;
second[i] = System.Convert.ToDouble(splitStr[1].Substring(5, 4)) / 3600;
aerfa[i] = (degree[i] + minute[i] + second[i]) * Math.PI / 180;//度--->弧度
R[i] = System.Convert.ToDouble(splitStr[2]);
Ls[i] = System.Convert.ToDouble(splitStr[3]);
TH[i] = System.Convert.ToDouble(splitStr[4]);
LT[i] = System.Convert.ToDouble(splitStr[5]);
Coor[i, 0] = System.Convert.ToDouble(splitStr[6]);
Coor[i, 1] = System.Convert.ToDouble(splitStr[7]);
K_ZH[i] = System.Convert.ToDouble(splitStr[8]);
K_HY[i] = System.Convert.ToDouble(splitStr[9]);
K_YH[i] = System.Convert.ToDouble(splitStr[10]);
K_HZ[i] = System.Convert.ToDouble(splitStr[11]);
这里小编只选取一部分,具体的大家以此类推就可以了。 splitStr[0]、splitStr[1]、splitStr[2]......表示取一行中的第一个数、第二个数第三个数......Substring(0, 3)是选取一个数的从第一位开始然后一共取3位数。因为c#里0表示第一位,和数组的定义一个道理。
7、点击启动-导入数据
8、打开我们的数据文件,可以发现,这样就实现了对文本文件的读写了。