txt文件中的数据如下
姓名,城市,昵称,邮编
,gd,kk,12
nj,,kk,12
nj,gd,kk,
nj,gd,,12现在要指定读入姓名/城市/邮编 到datagridview中请问该如何实现.

解决方案 »

  1.   

    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("姓名", typeof(String)); 
    dt.Columns.Add("城市", typeof(String)); 
    dt.Columns.Add("昵称", typeof(String)); 
    dt.Columns.Add("邮编", typeof(String));//读入文件 
    using (StreamReader reader = new StreamReader(dlgText.FileName, Encoding.Default)) 

    //循环读取所有行 
    while (!reader.EndOfStream) 

    //将每行数据,用-分割成4段 
    string[] data = reader.ReadLine().Replace("----", "-").Split('-'); //新建一行,并将读出的数据分段,分别存入3个对应的列中 
    DataRow dr = dt.NewRow(); 
    dr[0] = data[0]; 
    dr[1] = data[1]; 
    dr[2] = data[2];
    dr[3] = data[3];  //将这行数据加入到datatable中 
    dt.Rows.Add(dr); 

    } //将datatable绑定到datagridview上显示结果 
    this.dataGridView1.DataSource = dt; 


      

  2.   

    C# code 
    将你的文本做成
    txt文件中的数据如下 
    姓名,城市,昵称,邮编 
    gd,kk,12 
    nj,,kk,12 
    nj,gd,kk, 
    nj,gd,,12 
    格式一样的数据,用Substring(0, 2)方法;按位逐行取数据处理就OK了。
    下面是我工程项目中差不多的案例。你可以参考下。
      private void GPSform_Load(object sender, EventArgs e)
            {
                Int32 k = 0, i = 0;
                String str, block;
               
                String[] strnum = new string[] { };
                StreamReader bin = File.OpenText("berth.txt");
                while ((str = bin.ReadLine()) != null)
                {
                    if (k == 0)
                    {
                        k = 1;
                        //datintxt.Text= str.Substring(33, 8);
                        count = Convert.ToInt32(str.Substring(33, 8));
                    }
                    else
                    {
                        if (i < 2 * count)
                        {
                            //datintxt.Text = Convert.ToInt32(str.Substring(18, 8)).ToString();// +'\n';
                            xynum[i] = Convert.ToInt32(str.Substring(4, 8));
                            xynum[i + 1] = Convert.ToInt32(str.Substring(18, 8));
                            block = str.Substring(33, 3);
                            i += 2;                        changtxt.Text += str.Substring(4, 8) + '\n' + str.Substring(18, 8) + '\n';
                        }
                    }
                }
      

  3.   

    这不是我想要的效果如果我又有另一个文件
    城市,姓名,昵称,邮编 (注意城市和姓名调换了)
    ,gd,kk,12 
    nj,,kk,12 
    nj,gd,kk, 
    nj,gd,,12 如果用程序读取的话希望和上面的文件得到的结果是一样的