解析制表符分隔的文本文件 [英] Parsing Tab delimited text files

查看:214
本文介绍了解析制表符分隔的文本文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个制表符分隔文件,其中包含一些列和行:例如,某些行可能没有某些列的值。
我们知道的是,顺序不会改变,因此第三个制表符分隔的东西总是用于Column3,依此类推。

I have a tab delimited file with some columns and rows for example: some rows might not have value for some columns. What we know is that the "order" doesn't change so always third tab delimited thing is for Column3 and so on.

Column1  Column2  Column3 .... Column12 .... Column34 ... Column50
123  34 ABC
234     DEF                                   as@ddd.com    True
     45           NYC                         wwe@dsds.com  False      

现在我需要读取此文件,但并非所有列对我的程序都很重要。例如,我只需要对Column2,Column12,Column45中的值做些事情

Now I need to read this file but not all of the columns are important for my program. For example I only need to do some stuff with values in Column2, Column12,Column45

您建议采用什么方法?

推荐答案

尝试以下方法

static void Main(string[] args)
{
    DataTable datatable = new DataTable();
    StreamReader streamreader = new StreamReader(@"C:\Temp\txt.txt");
    char[] delimiter = new char[] { '\t' };
    string[] columnheaders = streamreader.ReadLine().Split(delimiter);
    foreach (string columnheader in columnheaders)
    {
        datatable.Columns.Add(columnheader); // I've added the column headers here.
    }

    while (streamreader.Peek() > 0)
    {
        DataRow datarow = datatable.NewRow();
        datarow.ItemArray = streamreader.ReadLine().Split(delimiter);
        datatable.Rows.Add(datarow);
    }

    foreach (DataRow row in datatable.Rows)
    {
        Console.WriteLine(""----Row No: " + datatable.Rows.IndexOf(row) + "----"");

        foreach (DataColumn column in datatable.Columns)
        {
            //check what columns you need
            if (column.ColumnName == "Column2" || 
                column.ColumnName == "Column12" ||
                column.ColumnName == "Column45") 
            {
                Console.Write(column.ColumnName);
                Console.Write(" ");
                Console.WriteLine(row[column]);
            }
        }
    }
    Console.ReadLine();
}

这篇关于解析制表符分隔的文本文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆