如何读取制表符分隔的文本文件C#

时间:2018-11-26 22:59:50

标签: c#

我有一个文件上传控件,供用户上传制表符分隔的文件,并且我希望在上传文件后仅读取每列的标题,我希望用户上传的文件在每列中具有这些标题< / p>

Procedure-Code  Waiting-Days    Group-ID

如果用户上传这样的内容,我想确保用户上传的文件具有上述确切的列标题

Procedure       Waiting         Group
123             5               54321
123             5               54321
123             5               54321
123             5               54321
123             5               54321

我想遍历这些标题,并检查其是否与我想要的标题相同,否则,它应该返回一条错误消息,指出无效的列标题。...

这是我上传文件的代码,但我不知道下一步要采取的步骤

string FileName = Path.GetFileName(uploadFile.PostedFile.FileName);
        string FilePath = Server.MapPath("~/uploads/Endorsement/" + FileName);
        uploadFile.SaveAs(FilePath);

        StreamReader streamreader = new StreamReader(FilePath);
        char[] delimiter = new char[] { '\t' };
        string[] columnheaders = streamreader.ReadLine().Split(delimiter);

1 个答案:

答案 0 :(得分:0)

经过几分钟的思考,我意识到我只是缺少foreach语句来执行我想要的确切操作,以防万一其他人遇到类似问题,这就是我能够解决的方法

string FileName = Path.GetFileName(uploadFile.PostedFile.FileName);
        string FilePath = Server.MapPath("~/uploads/Endorsement/" + FileName);
        uploadFile.SaveAs(FilePath);

        StreamReader streamreader = new StreamReader(FilePath);
        char[] delimiter = new char[] { '\t' };
        string[] columnheaders = streamreader.ReadLine().Split(delimiter);

        foreach (string columnheader in columnheaders)
        {
            if (columnheader.Contains("Procedure Code") || columnheader.Contains("Waiting Days") || columnheader.Contains("Group ID"))
            {

            }
            else
            {
                if ((File.Exists(FilePath)))
                {
                    lblError.Text = "Invalid Columns Provided";
                }
            }
        }