C#语言读取txt行列数据
Posted 硬件之家
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#语言读取txt行列数据相关的知识,希望对你有一定的参考价值。
硬件之家原创文章系列
我们常常会把类似坐标一样的二维数组放在txt文件中
那我们如何能准确的读取每一个数据呢?
首先看一个C#窗口体应用程序中一段代码:
public struct Point
public double X;
public double Y;
private void button1_Click(object sender, EventArgs e)
//---- 读取数据 -----//
OpenFileDialog filename = new OpenFileDialog(); //定义打开文件
filename.InitialDirectory = Application.StartupPath; //初始路径,这里设置的是程序的起始位置,可自由设置
filename.Filter = "All files(*.*)|*.*|txt files(*.txt)|*.txt";//设置打开类型,设置个*.*和*.txt就行了
filename.FilterIndex = 2; //文件类型的显示顺序(上一行.txt设为第二位)
filename.RestoreDirectory = true; //对话框记忆之前打开的目录
if (filename.ShowDialog() == DialogResult.OK)
label14.Text = filename.FileName.ToString();//获得完整路径在textBox1中显示
StreamReader sr = new StreamReader(filename.FileName);//将选中的文件在textBox2中显示(filename.FileName, Encoding.Default)
richTextBox1.Text = sr.ReadToEnd();
sr.Close();
//----- 处理数据 ----//
// 读出文本文件的所有行
string[] lines = File.ReadAllLines(filename.FileName);
// 点列表集合
List<Point> points = new List<Point>();
//从第一行开始处理
for (int i = 0; i < lines.Length; i++)
string line = lines[i];
// 拆分行
string[] v = line.Split(new char[] ' ' , StringSplitOptions.RemoveEmptyEntries);
Point p;
// 获取Y(第一列)
p.X = double.Parse(v[0]);
// 获取Y(第二列)
p.Y = double.Parse(v[1]);
points.Add(p);
// 至此,所有的数据点都在列表集合points中了
//在RichTextBox显示List列表第二列(0是第一列)中的结构体对象Y
richTextBox1.Text = richTextBox1.Text + points[1].Y;
首先定义一个结构体,包含X坐标数据与Y坐标数据:
public struct Point
public double X;
public double Y;
然后是读取一个txt文件,获取所有数据,同时将每一列中的数据读取为列表中的X轴坐标与Y轴坐标:
//----- 处理数据 ----//
// 读出文本文件的所有行
string[] lines = File.ReadAllLines(filename.FileName);
// 点列表集合
List<Point> points = new List<Point>();
// 让过第一行,从第二行开始处理
for (int i = 0; i < lines.Length; i++)
string line = lines[i];
// 拆分行
string[] v = line.Split(new char[] ' ' , StringSplitOptions.RemoveEmptyEntries);
Point p;
// 获取Y(第一列)
p.X = double.Parse(v[0]);
// 获取Y(第二列)
p.Y = double.Parse(v[1]);
points.Add(p);
// 至此,所有的数据点都在列表集合points中了
可以看到,读取第二列Y轴数据为13,是正确的。
硬件之家,技术向前。
欢迎交流与相互学习(微信:estorm22).
以上是关于C#语言读取txt行列数据的主要内容,如果未能解决你的问题,请参考以下文章