求大神讲解啊。using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.IO ;namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }        private void button1_Click(object sender, EventArgs e)
        {
            using (OpenFileDialog dlgText = new OpenFileDialog())
            {
                dlgText.Filter = "文本文件|*.txt";
                if (dlgText.ShowDialog() == DialogResult.OK)
                {
                    //新建一个datatable用于保存读入的数据
                    DataTable dt = new DataTable();
                    //给datatable添加三个列
                    dt.Columns.Add("ID", typeof(String));
                    dt.Columns.Add("Name", typeof(String));
                    dt.Columns.Add("level", typeof(String));
                    dt.Columns.Add("nextlevelexp", typeof(String));
                    dt.Columns.Add("BodyRadius", typeof(String));
                    dt.Columns.Add("BaseWalkSpeed", typeof(String));
                    dt.Columns.Add("BaseMaxHp ", typeof(String));
                    dt.Columns.Add("BaseAtkSpeed ", typeof(String));
                    dt.Columns.Add("BaseNormalAtk ", typeof(String));
                    dt.Columns.Add("BaseNormalDef ", typeof(String));
                    dt.Columns.Add("BaseHitValue ", typeof(String));
                    dt.Columns.Add("BaseDodgeValue ", typeof(String));
                    dt.Columns.Add("BaseCritValue ", typeof(String));
                    dt.Columns.Add("BaseCritAvoidValue ", typeof(String));                    //读入文件
                    using (StreamReader reader = new StreamReader(dlgText.FileName, Encoding.Default))
                    {
                        //循环读取所有行
                        while (!reader.EndOfStream)
                        {
                            //将每行数据,用-分割成3段
                            string[] data = reader.ReadLine().Replace("  ", "-").Split('-');
                            //新建一行,并将读出的数据分段,分别存入3个对应的列中
                            if (data.Length == 14)
                            {
                                DataRow dr = dt.NewRow();
                               // int index = dt.Rows.Add();                                dr[0] = data[0];
                                dr[1] = data[1];
                                dr[2] = data[2];
                                dr[3] = data[3];
                                dr[4] = data[4];
                                dr[5] = data[5];
                                dr[6] = data[6];
                                dr[7] = data[7];
                                dr[8] = data[8];
                                dr[9] = data[9];
                                dr[10] = data[10];
                                dr[11] = data[11];
                                dr[12] = data[12];
                                dr[13] = data[13];                                //将这行数据加入到datatable中
                                dt.Rows.Add(dr);
                            }
                            dataGridView1.DataSource = dt;
                        }
                    }
                    //将datatable绑定到datagridview上显示结果
                    this.dataGridView1.DataSource = dt;
                }
            }
        }
                     private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            //dataGridview1.rows.add(item[索引])
        }        private void dataGridView1_CellContentClick_1(object sender, DataGridViewCellEventArgs e)
        {        }
    }
}

解决方案 »

  1.   

    file.readAll 可以直接读取整个文件的内容
    每一行用split分隔数据即可,
    貌似你已经实现了啊,为什么还要问
      

  2.   

    读出来不正却,我是要读很多个txt文件,这个只能一个。而且我显示出来没有列的数据
      

  3.   

    换成随便打开一个excel文件显示成表格形式,程序游戏配置文件那种
      

  4.   

    文件很多就逐个读取就是了 List<string> list=new List<string>(); //list存放所有txt文件路径
        string[] files = System.IO.Directory.GetFiles(txtPath); //txtPath为txt所在路径
        foreach (string str in files)
        {
            string[] temp = str.Split(new[] { "." }, StringSplitOptions.None);
            if (temp[1] == "pdf")
            {
    list.Add(str);
            }
        }
    for(int i=0;i<list.Count;i++) 
    {
    //逐个文件读取
    }我们也不知道你的txt内容是什么样的格式,关于拆分,看你的格式,网上找示例就行
      

  5.   

    文件很多就逐个读取就是了 List<string> list=new List<string>(); //list存放所有txt文件路径
        string[] files = System.IO.Directory.GetFiles(txtPath); //txtPath为txt所在路径
        foreach (string str in files)
        {
            string[] temp = str.Split(new[] { "." }, StringSplitOptions.None);
            if (temp[1] == "pdf")
            {
    list.Add(str);
            }
        }
    for(int i=0;i<list.Count;i++) 
    {
    //逐个文件读取
    }我们也不知道你的txt内容是什么样的格式,关于拆分,看你的格式,网上找示例就行“pdf”改为“txt”
      

  6.   

    您好,我按照您给的方式读取txt文件,一开始是可以读取的,但我发现换了一个路径就无法读取,这是怎么回事呢?
      

  7.   

    用一个数字,是可以循环读取txt文件内容的,更是容易用循环放到Datagridview。 但是在Txt文件中处理很烦人。 不如换数据库吧。