使用Tabs读取文本文件

时间:2015-06-17 07:21:16

标签: c# asp.net .net file readfile

在文本文件中,我使用 TAB 创建一个类似于列的网格,但显然这些选项卡只是作为空格读取,这当然会破坏格式。

这是我的代码(path是文件路径,例如D:/folder/testtt.txt):

if (File.Exists(path))
{
    using (TextReader tr = new StreamReader(path))
    {
        while (tr.Peek() != -1)
        {
            Response.Write(tr.ReadLine() + "<br/>");
        }
    }
}

这就是它应该出现的方式:

Screenshot

Link

这就是目前的情况:

Screenshot

Link

我该如何解决?

3 个答案:

答案 0 :(得分:2)

ISO-8859-1 HTML中没有定义标签实体,所以我认为你可以用一些&nbsp;字符替换标签字符:

if (File.Exists(path))
{
    using (TextReader tr = new StreamReader(path))
    {
        while (tr.Peek() != -1)
        {
            var htmlLine = tr.ReadLine().Replace("\t", "&nbsp;&nbsp;&nbsp;&nbsp;") + "<br/>";
            Response.Write(htmlLine);
        }
    }
}

答案 1 :(得分:1)

为什么不在<pre>标记中输出文件内容?它将保留选项卡并为您提供一个漂亮的等宽输出。

答案 2 :(得分:1)

您可以在输出HTML时创建真正的网格:

if (File.Exists(path))
{
    using (TextReader tr = new StreamReader(path))
    { 
        Response.Write("<table>");
        while (tr.Peek() != -1)
        {
            Response.Write("<tr><td>");
            Response.Write(String.Join("</td><td>", tr.ReadLine().Split('/t')));
            Response.Write("</td></tr>");
        }
        Response.Write("</table>");
    }
}

这对我来说是最干净的解决方案 - 你希望它看起来像一个网格 - 制作一个网格:)