0

我正在写入一个文件,如下所示。我百分百确定写入文件的变量中没有换行符。但是,在打印到适用长度的记事本的每一行中的任意字符数时,都会创建换行符。但是,在文件末尾按删除(甚至按住删除)以删除任何非打印字符(例如换行符)无效。在受此影响的任何行的第一个字符之前按退格键会删除上一行的最后一个字符,但确实消除了换行符。在最后一个字符之后写入立即移至下一行。我已经在新行上进行了测试,拿着一个字符只是为了看看我是否可以越过自动换行的开始点。我可以,但不是 c# 写入的位置。我已经在命令中尝试了 TYPE KEYWORDS.LOG,并且它不打印换行符,所以我不(认为)它会影响我以后逐行读取文件。但这是记事本中的一个小故障吗?在 C# 中?在 IO.StreamWriter 中?在我的代码中?(我不这么认为?)这仅仅是我不知道的属性吗?

显然,自动换行没有打开。但是谢谢。. .

调整窗口大小不会换行文本,也不会改变我所描述的效果。

// OPEN STREAM TO KEYWORDS.LOG
StreamWriter fileWrite = new StreamWriter("KEYWORDS.LOG");

for (int i=0;i<Referrals.Count();i++)
{
    // FIRST THE URL
    Console.Write("\n\n{0}\n-", Referrals[i].URL);

    // NOW TO THE FILE!
    fileWrite.Write("{0}@", Referrals[i].URL);


    var SortedKeys = from k in Referrals[i].Keywords.Keys orderby Referrals[i].Keywords[k] descending select k;
    foreach (string Phrase in SortedKeys)
    {
    // NOW TO THE CONSOLE
    Console.Write("\t({0}) {1}\n", Referrals[i].Keywords[Phrase], Phrase);

    // NOW TO THE FILE!
    fileWrite.Write("##{0}##{1}", Referrals[i].Keywords[Phrase], Phrase);
    }

    // LINE BREAK FOR FILE!
    fileWrite.WriteLine("");

}


    // CLOSE FILE STREAM
    fileWrite.Close();
4

4 回答 4

6

这可能不是任意的,您只是还没有看到原因。

看看C# TextWriter 每 1024 个字符插入换行符

最大长度为 1024。

如果可以,请粘贴一些示例文本;D

于 2009-07-23T14:45:31.403 回答
1

这绝对不是自动换行问题。我使用以前版本的 Windows(我认为是 XP)在记事本中遇到了这个问题,限制为 4096 个字符。今天我在windows 7的记事本上试了一下,限制是1024个字符。我尝试过的其他几个文本编辑器强加了“每行字符数”限制,该限制通常没有记录。我很少遇到每行需要超过几百个字符的情况,但我认为没有理由强加限制。

我在创建 ASCII 立体图时第一次遇到了这个问题。我想要一个大到可以打印在海报上的东西,我正在记事本中查看它。一旦我生成一个超过 4096 个字符宽的字符,每一行都会被换行。看起来很糟糕。

这些文本查看器实际上并未在文本中插入任何换行符。他们只是改变了显示文本的方式。这就是为什么当您的光标位于下一个“行”的开头时,您可以删除“行”的最后一个字符。我将“线”放在引号中,因为它不是真正的线。您实际上是在实际文本行中间的某处删除文本。假设文本编辑器表现良好,当您保存文件时,它仍然会有很长的一行。如果您稍后在能够显示足够长行的查看器中查看文本,它应该可以正确显示。

于 2012-08-17T20:51:55.293 回答
0

你有可能在记事本中有“自动换行”吗?抱歉,这似乎是一个显而易见的问题。

于 2009-07-23T14:43:30.483 回答
-1

错误...在记事本中仔细检查“格式”-“自动换行”。

于 2009-07-23T14:43:33.073 回答