使用 Tab 读取文本文件

Reading a text file with Tabs

在一个文本文件中,我使用 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/>");
        }
    }
}

它应该是这样的:

Link

这是它目前的样子:

Link

我该如何解决?

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);
        }
    }
}

为什么不在<pre>标签中输出文件内容?它将保留制表符并为您提供漂亮的等宽输出。

您可以在输出时创建真实的网格 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>");
    }
}

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